diff options
Diffstat (limited to 'utils/themeeditor/configdocument.cpp')
-rw-r--r-- | utils/themeeditor/configdocument.cpp | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/utils/themeeditor/configdocument.cpp b/utils/themeeditor/configdocument.cpp index 5bc4b77504..a897d3b9e3 100644 --- a/utils/themeeditor/configdocument.cpp +++ b/utils/themeeditor/configdocument.cpp | |||
@@ -36,9 +36,24 @@ ConfigDocument::ConfigDocument(QMap<QString, QString>& settings, QString file, | |||
36 | { | 36 | { |
37 | ui->setupUi(this); | 37 | ui->setupUi(this); |
38 | 38 | ||
39 | /* Populating the known keys list */ | ||
40 | QFile fin(":/resources/configkeys"); | ||
41 | fin.open(QFile::ReadOnly); | ||
42 | |||
43 | QStringList* container = &primaryKeys; | ||
44 | while(!fin.atEnd()) | ||
45 | { | ||
46 | QString current = QString(fin.readLine()); | ||
47 | if(current == "-\n") | ||
48 | container = &secondaryKeys; | ||
49 | else if(current != "\n") | ||
50 | container->append(current.trimmed()); | ||
51 | } | ||
52 | |||
39 | QMap<QString, QString>::iterator i; | 53 | QMap<QString, QString>::iterator i; |
40 | for(i = settings.begin(); i != settings.end(); i++) | 54 | for(i = settings.begin(); i != settings.end(); i++) |
41 | addRow(i.key(), i.value()); | 55 | if(i.key() != "themebase") |
56 | addRow(i.key(), i.value()); | ||
42 | 57 | ||
43 | saved = toPlainText(); | 58 | saved = toPlainText(); |
44 | 59 | ||
@@ -160,7 +175,7 @@ QString ConfigDocument::toPlainText() const | |||
160 | 175 | ||
161 | for(int i = 0; i < keys.count(); i++) | 176 | for(int i = 0; i < keys.count(); i++) |
162 | { | 177 | { |
163 | buffer += keys[i]->text(); | 178 | buffer += keys[i]->currentText(); |
164 | buffer += ":"; | 179 | buffer += ":"; |
165 | buffer += values[i]->text(); | 180 | buffer += values[i]->text(); |
166 | buffer += "\n"; | 181 | buffer += "\n"; |
@@ -172,11 +187,24 @@ QString ConfigDocument::toPlainText() const | |||
172 | void ConfigDocument::addRow(QString key, QString value) | 187 | void ConfigDocument::addRow(QString key, QString value) |
173 | { | 188 | { |
174 | QHBoxLayout* layout = new QHBoxLayout(); | 189 | QHBoxLayout* layout = new QHBoxLayout(); |
175 | QLineEdit* keyEdit = new QLineEdit(key, this); | 190 | QComboBox* keyEdit = new QComboBox(this); |
176 | QLineEdit* valueEdit = new QLineEdit(value, this); | 191 | QLineEdit* valueEdit = new QLineEdit(value, this); |
177 | QPushButton* delButton = new QPushButton(tr("-"), this); | 192 | QPushButton* delButton = new QPushButton(tr("-"), this); |
193 | QLabel* label = new QLabel(":"); | ||
194 | |||
195 | /* Loading the combo box options */ | ||
196 | keyEdit->setInsertPolicy(QComboBox::InsertAlphabetically); | ||
197 | keyEdit->setEditable(true); | ||
198 | keyEdit->addItems(primaryKeys); | ||
199 | keyEdit->insertSeparator(keyEdit->count()); | ||
200 | keyEdit->addItems(secondaryKeys); | ||
201 | if(keyEdit->findText(key) != -1) | ||
202 | keyEdit->setCurrentIndex(keyEdit->findText(key)); | ||
203 | else | ||
204 | keyEdit->setEditText(key); | ||
178 | 205 | ||
179 | layout->addWidget(keyEdit); | 206 | layout->addWidget(keyEdit); |
207 | layout->addWidget(label); | ||
180 | layout->addWidget(valueEdit); | 208 | layout->addWidget(valueEdit); |
181 | layout->addWidget(delButton); | 209 | layout->addWidget(delButton); |
182 | 210 | ||
@@ -185,7 +213,8 @@ void ConfigDocument::addRow(QString key, QString value) | |||
185 | 213 | ||
186 | QObject::connect(delButton, SIGNAL(clicked()), | 214 | QObject::connect(delButton, SIGNAL(clicked()), |
187 | this, SLOT(deleteClicked())); | 215 | this, SLOT(deleteClicked())); |
188 | 216 | QObject::connect(keyEdit, SIGNAL(currentIndexChanged(QString)), | |
217 | this, SLOT(textChanged())); | ||
189 | QObject::connect(keyEdit, SIGNAL(textChanged(QString)), | 218 | QObject::connect(keyEdit, SIGNAL(textChanged(QString)), |
190 | this, SLOT(textChanged())); | 219 | this, SLOT(textChanged())); |
191 | QObject::connect(valueEdit, SIGNAL(textChanged(QString)), | 220 | QObject::connect(valueEdit, SIGNAL(textChanged(QString)), |
@@ -197,6 +226,7 @@ void ConfigDocument::addRow(QString key, QString value) | |||
197 | keys.append(keyEdit); | 226 | keys.append(keyEdit); |
198 | values.append(valueEdit); | 227 | values.append(valueEdit); |
199 | deleteButtons.append(delButton); | 228 | deleteButtons.append(delButton); |
229 | labels.append(label); | ||
200 | 230 | ||
201 | } | 231 | } |
202 | 232 | ||
@@ -209,11 +239,13 @@ void ConfigDocument::deleteClicked() | |||
209 | keys[row]->deleteLater(); | 239 | keys[row]->deleteLater(); |
210 | values[row]->deleteLater(); | 240 | values[row]->deleteLater(); |
211 | containers[row]->deleteLater(); | 241 | containers[row]->deleteLater(); |
242 | labels[row]->deleteLater(); | ||
212 | 243 | ||
213 | deleteButtons.removeAt(row); | 244 | deleteButtons.removeAt(row); |
214 | keys.removeAt(row); | 245 | keys.removeAt(row); |
215 | values.removeAt(row); | 246 | values.removeAt(row); |
216 | containers.removeAt(row); | 247 | containers.removeAt(row); |
248 | labels.removeAt(row); | ||
217 | 249 | ||
218 | if(saved != toPlainText()) | 250 | if(saved != toPlainText()) |
219 | emit titleChanged(title() + "*"); | 251 | emit titleChanged(title() + "*"); |