diff options
Diffstat (limited to 'utils/themeeditor/configdocument.cpp')
-rw-r--r-- | utils/themeeditor/configdocument.cpp | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/utils/themeeditor/configdocument.cpp b/utils/themeeditor/configdocument.cpp new file mode 100644 index 0000000000..95daec0b60 --- /dev/null +++ b/utils/themeeditor/configdocument.cpp | |||
@@ -0,0 +1,125 @@ | |||
1 | #include "configdocument.h" | ||
2 | #include "ui_configdocument.h" | ||
3 | |||
4 | ConfigDocument::ConfigDocument(QMap<QString, QString>& settings, QString file, | ||
5 | QWidget *parent) | ||
6 | : TabContent(parent), | ||
7 | ui(new Ui::ConfigDocument), | ||
8 | filePath(file) | ||
9 | { | ||
10 | ui->setupUi(this); | ||
11 | |||
12 | QMap<QString, QString>::iterator i; | ||
13 | for(i = settings.begin(); i != settings.end(); i++) | ||
14 | addRow(i.key(), i.value()); | ||
15 | |||
16 | saved = toPlainText(); | ||
17 | |||
18 | QObject::connect(ui->addKeyButton, SIGNAL(pressed()), | ||
19 | this, SLOT(addClicked())); | ||
20 | } | ||
21 | |||
22 | ConfigDocument::~ConfigDocument() | ||
23 | { | ||
24 | delete ui; | ||
25 | } | ||
26 | |||
27 | void ConfigDocument::changeEvent(QEvent *e) | ||
28 | { | ||
29 | QWidget::changeEvent(e); | ||
30 | switch (e->type()) { | ||
31 | case QEvent::LanguageChange: | ||
32 | ui->retranslateUi(this); | ||
33 | break; | ||
34 | default: | ||
35 | break; | ||
36 | } | ||
37 | } | ||
38 | |||
39 | QString ConfigDocument::title() const | ||
40 | { | ||
41 | QStringList decompose = filePath.split("/"); | ||
42 | return decompose.last(); | ||
43 | } | ||
44 | |||
45 | void ConfigDocument::save() | ||
46 | { | ||
47 | |||
48 | } | ||
49 | |||
50 | void ConfigDocument::saveAs() | ||
51 | { | ||
52 | |||
53 | } | ||
54 | |||
55 | bool ConfigDocument::requestClose() | ||
56 | { | ||
57 | |||
58 | } | ||
59 | |||
60 | QString ConfigDocument::toPlainText() const | ||
61 | { | ||
62 | QString buffer = ""; | ||
63 | |||
64 | for(int i = 0; i < keys.count(); i++) | ||
65 | { | ||
66 | buffer += keys[i]->text(); | ||
67 | buffer += ":"; | ||
68 | buffer += values[i]->text(); | ||
69 | buffer += "\n"; | ||
70 | } | ||
71 | |||
72 | return buffer; | ||
73 | } | ||
74 | |||
75 | void ConfigDocument::addRow(QString key, QString value) | ||
76 | { | ||
77 | QHBoxLayout* layout = new QHBoxLayout(); | ||
78 | QLineEdit* keyEdit = new QLineEdit(key, this); | ||
79 | QLineEdit* valueEdit = new QLineEdit(value, this); | ||
80 | QPushButton* delButton = new QPushButton(tr("-"), this); | ||
81 | |||
82 | layout->addWidget(keyEdit); | ||
83 | layout->addWidget(valueEdit); | ||
84 | layout->addWidget(delButton); | ||
85 | |||
86 | delButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); | ||
87 | delButton->setMaximumWidth(35); | ||
88 | |||
89 | QObject::connect(delButton, SIGNAL(clicked()), | ||
90 | this, SLOT(deleteClicked())); | ||
91 | |||
92 | ui->configBoxes->addLayout(layout); | ||
93 | |||
94 | containers.append(layout); | ||
95 | keys.append(keyEdit); | ||
96 | values.append(valueEdit); | ||
97 | deleteButtons.append(delButton); | ||
98 | |||
99 | } | ||
100 | |||
101 | void ConfigDocument::deleteClicked() | ||
102 | { | ||
103 | QPushButton* button = dynamic_cast<QPushButton*>(sender()); | ||
104 | int row = deleteButtons.indexOf(button); | ||
105 | |||
106 | deleteButtons[row]->deleteLater(); | ||
107 | keys[row]->deleteLater(); | ||
108 | values[row]->deleteLater(); | ||
109 | containers[row]->deleteLater(); | ||
110 | |||
111 | deleteButtons.removeAt(row); | ||
112 | keys.removeAt(row); | ||
113 | values.removeAt(row); | ||
114 | containers.removeAt(row); | ||
115 | |||
116 | if(saved != toPlainText()) | ||
117 | emit titleChanged(title() + "*"); | ||
118 | else | ||
119 | emit titleChanged(title()); | ||
120 | } | ||
121 | |||
122 | void ConfigDocument::addClicked() | ||
123 | { | ||
124 | addRow(tr("Key"), tr("Value")); | ||
125 | } | ||