summaryrefslogtreecommitdiff
path: root/inputmethods/multikey/configdlg.cpp
Unidiff
Diffstat (limited to 'inputmethods/multikey/configdlg.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/configdlg.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index c5ebe3c..f6507b4 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -286,13 +286,34 @@ void ConfigDlg::addMap() {
286 286
287 Config config ("multikey"); 287 Config config ("multikey");
288 config.setGroup("keymaps"); 288 config.setGroup("keymaps");
289 QStringList maps = config.readListEntry("maps", QChar('|')); 289 QStringList maps = config.readListEntry("maps", QChar('|'));
290 maps.append(map); 290 maps.append(map);
291 custom_maps.append(map); 291 custom_maps.append(map);
292 keymaps->insertItem(map); 292
293 QFile map_file (map);
294 if (map_file.open(IO_ReadOnly)) {
295
296 QString line; bool found = 0;
297
298 map_file.readLine(line, 1024);
299 while (!map_file.atEnd()) {
300
301 if (line.find(QRegExp("^title\\s*=\\s*")) != -1) {
302
303 keymaps->insertItem(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace());
304 found = 1;
305 break;
306 }
307 map_file.readLine(line, 1024);
308 }
309 if (!found) keymaps->insertItem(map);
310
311 map_file.close();
312 }
313
293 keymaps->setSelected(keymaps->count() - 1, true); 314 keymaps->setSelected(keymaps->count() - 1, true);
294 315
295 316
296 config.writeEntry("maps", maps, QChar('|')); 317 config.writeEntry("maps", maps, QChar('|'));
297 config.writeEntry("current", map); 318 config.writeEntry("current", map);
298 319