summaryrefslogtreecommitdiff
path: root/inputmethods/multikey/configdlg.cpp
Side-by-side diff
Diffstat (limited to 'inputmethods/multikey/configdlg.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/configdlg.cpp56
1 files changed, 45 insertions, 11 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index 10bc611..c5ebe3c 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -8,8 +8,6 @@
*
*/
-#include <iostream.h>
-
#include <qpe/qpeapplication.h>
#include <qpe/config.h>
@@ -60,9 +58,28 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
QDir map_dir(QPEApplication::qpeDir() + "/share/multikey", "*.keymap");
default_maps = map_dir.entryList(); // so i can access it in other places
- for (uint i = 0; i <map_dir.count(); i++) {
+ for (uint i = 0; i < map_dir.count(); i++) {
+
+ QFile map (map_dir.absPath() + "/" + map_dir[i]);
+ if (map.open(IO_ReadOnly)) {
+
+ QString line; bool found = 0;
+
+ map.readLine(line, 1024);
+ while (!map.atEnd()) {
- keymaps->insertItem(map_dir.absPath() + "/" + map_dir[i]);
+ if (line.find(QRegExp("^title\\s*=\\s*")) != -1) {
+
+ keymaps->insertItem(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace());
+ found = 1;
+ break;
+ }
+ map.readLine(line, 1024);
+ }
+ if (!found) keymaps->insertItem(map_dir.absPath() + "/" + map_dir[i]);
+
+ map.close();
+ }
if (map_dir.absPath() + "/" + map_dir[i] == current_map) {
keymaps->setSelected(i + 1, true);
@@ -85,7 +102,26 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
} else {
- keymaps->insertItem(custom_maps[i]);
+ QFile map (custom_maps[i]);
+ if (map.open(IO_ReadOnly)) {
+
+ QString line; bool found = 0;
+
+ map.readLine(line, 1024);
+ while (!map.atEnd()) {
+
+ if (line.find(QRegExp("^title\\s*=\\s*")) != -1) {
+
+ keymaps->insertItem(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace());
+ found = 1;
+ break;
+ }
+ map.readLine(line, 1024);
+ }
+ if (!found) keymaps->insertItem(custom_maps[i]);
+
+ map.close();
+ }
if (custom_maps[i] == current_map) {
keymaps->setSelected(map_dir.count() + i + 1, true);
@@ -232,12 +268,12 @@ void ConfigDlg::setMap(int index) {
else if ((uint)index <= default_maps.count()) {
remove_button->setDisabled(true);
- emit setMapToFile(keymaps->text(index));
+ emit setMapToFile(QPEApplication::qpeDir() + "/share/multikey/" + default_maps[index - 1]);
} else {
remove_button->setEnabled(true);
- emit setMapToFile(keymaps->text(index));
+ emit setMapToFile(custom_maps[index - default_maps.count() - 1]);
}
}
@@ -252,6 +288,7 @@ void ConfigDlg::addMap() {
config.setGroup("keymaps");
QStringList maps = config.readListEntry("maps", QChar('|'));
maps.append(map);
+ custom_maps.append(map);
keymaps->insertItem(map);
keymaps->setSelected(keymaps->count() - 1, true);
@@ -264,15 +301,12 @@ void ConfigDlg::addMap() {
// ConfigDlg::removeMap() {{{1
void ConfigDlg::removeMap() {
- cout << "removing : " << custom_maps[keymaps->currentItem() - default_maps.count() - 1] << "\n";
- cout << "currentItem : " << keymaps->currentItem() << "\n";
-
// move selection up one
keymaps->setSelected(keymaps->currentItem() - 1, true);
// delete the next selected item cus you just moved it up
keymaps->removeItem(keymaps->currentItem() + 1);
- custom_maps.remove(custom_maps[keymaps->currentItem() - default_maps.count()]);
+ custom_maps.remove(custom_maps.at(keymaps->currentItem() - default_maps.count()));
// write the changes
Config config ("multikey");