summaryrefslogtreecommitdiff
path: root/inputmethods/multikey
Unidiff
Diffstat (limited to 'inputmethods/multikey') (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/configdlg.cpp29
-rw-r--r--inputmethods/multikey/configdlg.h2
-rw-r--r--inputmethods/multikey/keyboard.cpp33
-rw-r--r--inputmethods/multikey/keyboard.h2
4 files changed, 53 insertions, 13 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index 7bea589..c4f7413 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -20,12 +20,14 @@
20#include <qsizepolicy.h> 20#include <qsizepolicy.h>
21#include <qpushbutton.h> 21#include <qpushbutton.h>
22#include <qlistbox.h> 22#include <qlistbox.h>
23#include <qstringlist.h>
23#include "configdlg.h" 24#include "configdlg.h"
24#include "keyboard.h" 25#include "keyboard.h"
25 26
26ConfigDlg::ConfigDlg () : QTabWidget () 27ConfigDlg::ConfigDlg () : QTabWidget ()
27{ 28{
28 setCaption( tr("Multikey Configuration") ); 29 setCaption( tr("Multikey Configuration") );
30 Config config ("multikey");
29 31
30 /* 32 /*
31 * 'general config' tab 33 * 'general config' tab
@@ -39,12 +41,24 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
39 41
40 keymaps = new QListBox (map_group); 42 keymaps = new QListBox (map_group);
41 keymaps->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); 43 keymaps->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
42 //keymaps->setMaximumHeight(150);
43 44
44 QString cur(tr("Current Language")); 45 QString cur(tr("Current Language"));
45 keymaps->insertItem(cur); 46 keymaps->insertItem(cur);
47
48 config.setGroup ("keymaps");
49 QStringList maps = config.readListEntry("maps", QChar('|'));
50
51 for (unsigned int i = 0; i < maps.count(); i++) {
52
53 keymaps->insertItem(maps[i]);
54 }
55
56 // have to "+1" because the "current language" listItem... remember?
57 keymaps->setSelected(config.readNumEntry("current", 0) + 1, true);
58
46 connect(keymaps, SIGNAL(highlighted(int)), SLOT(setMap(int))); 59 connect(keymaps, SIGNAL(highlighted(int)), SLOT(setMap(int)));
47 60
61 /*
48 QString ko(QPEApplication::qpeDir() + "/share/multikey/ko.keymap"); 62 QString ko(QPEApplication::qpeDir() + "/share/multikey/ko.keymap");
49 keymaps->insertItem(ko); 63 keymaps->insertItem(ko);
50 64
@@ -53,6 +67,7 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
53 67
54 QString de(QPEApplication::qpeDir() + "/share/multikey/de.keymap"); 68 QString de(QPEApplication::qpeDir() + "/share/multikey/de.keymap");
55 keymaps->insertItem(de); 69 keymaps->insertItem(de);
70 */
56 71
57 QGrid *add_remove_grid = new QGrid(2, map_group); 72 QGrid *add_remove_grid = new QGrid(2, map_group);
58 add_remove_grid->setMargin(3); 73 add_remove_grid->setMargin(3);
@@ -66,7 +81,6 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
66 81
67 pick_button = new QCheckBox(tr("Pickboard"), gen_box); 82 pick_button = new QCheckBox(tr("Pickboard"), gen_box);
68 83
69 Config config ("multikey");
70 config.setGroup ("pickboard"); 84 config.setGroup ("pickboard");
71 bool pick_open = config.readBoolEntry ("open", "0"); // default closed 85 bool pick_open = config.readBoolEntry ("open", "0"); // default closed
72 if (pick_open) { 86 if (pick_open) {
@@ -116,6 +130,15 @@ void ConfigDlg::pickTog() {
116 emit pickboardToggled(pick_button->isChecked()); 130 emit pickboardToggled(pick_button->isChecked());
117} 131}
118 132
133/*
134 * the index is kinda screwy, because in the config file, index 0 is just the
135 * first element in the QStringList, but here it's the "Current Language"
136 * listItem. therefor you have to minus one to the index before you access
137 * it from the config file.
138 *
139 * and later on, the "current language" setting should be -1 in the config file
140 */
141
119void ConfigDlg::setMap(int index) { 142void ConfigDlg::setMap(int index) {
120 143
121 if (index == 0) { 144 if (index == 0) {
@@ -130,7 +153,7 @@ void ConfigDlg::setMap(int index) {
130 if (!remove_button->isEnabled()) 153 if (!remove_button->isEnabled())
131 remove_button->setEnabled(true); 154 remove_button->setEnabled(true);
132 155
133 emit setMapToFile(keymaps->text(index)); 156 emit setMapToFile(index - 1);
134 } 157 }
135} 158}
136 159
diff --git a/inputmethods/multikey/configdlg.h b/inputmethods/multikey/configdlg.h
index 1a64764..03a3547 100644
--- a/inputmethods/multikey/configdlg.h
+++ b/inputmethods/multikey/configdlg.h
@@ -17,7 +17,7 @@ public:
17signals: 17signals:
18 void pickboardToggled(bool on_off); 18 void pickboardToggled(bool on_off);
19 void setMapToDefault(); 19 void setMapToDefault();
20 void setMapToFile(QString file); 20 void setMapToFile(int index);
21 21
22private slots: 22private slots:
23 void pickTog(); 23 void pickTog();
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 671868c..c53ae6c 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -33,6 +33,8 @@
33#include <ctype.h> 33#include <ctype.h>
34#include <qfile.h> 34#include <qfile.h>
35#include <qtextstream.h> 35#include <qtextstream.h>
36#include <qstringlist.h>
37#include <iostream.h>
36 38
37#include <sys/utsname.h> 39#include <sys/utsname.h>
38 40
@@ -288,8 +290,8 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
288 this, SLOT(togglePickboard(bool))); 290 this, SLOT(togglePickboard(bool)));
289 connect(configdlg, SIGNAL(setMapToDefault()), 291 connect(configdlg, SIGNAL(setMapToDefault()),
290 this, SLOT(setMapToDefault())); 292 this, SLOT(setMapToDefault()));
291 connect(configdlg, SIGNAL(setMapToFile(QString)), 293 connect(configdlg, SIGNAL(setMapToFile(int)),
292 this, SLOT(setMapToFile(QString))); 294 this, SLOT(setMapToFile(int)));
293 configdlg->showMaximized(); 295 configdlg->showMaximized();
294 configdlg->show(); 296 configdlg->show();
295 configdlg->raise(); 297 configdlg->raise();
@@ -517,7 +519,7 @@ void Keyboard::setMapToDefault() {
517 /* save change to multikey config file */ 519 /* save change to multikey config file */
518 config = new Config("multikey"); 520 config = new Config("multikey");
519 config->setGroup ("keymaps"); 521 config->setGroup ("keymaps");
520 config->writeEntry ("current", key_map); // default closed 522 config->writeEntry ("current", -1); // default closed
521 delete config; 523 delete config;
522 524
523 delete keys; 525 delete keys;
@@ -527,16 +529,24 @@ void Keyboard::setMapToDefault() {
527 repaint(FALSE); 529 repaint(FALSE);
528} 530}
529 531
530void Keyboard::setMapToFile(QString file) { 532void Keyboard::setMapToFile(int index) {
531 533
532 /* save change to multikey config file */ 534 /* save change to multikey config file */
533 Config *config = new Config("multikey"); 535 Config *config = new Config("multikey");
534 config->setGroup ("keymaps"); 536 config->setGroup ("keymaps");
535 config->writeEntry ("current", file); // default closed 537 config->writeEntry ("current", index); // default closed
538
539
540 /* now you have to retrieve the map */
541 QStringList maps = config->readListEntry("maps", QChar('|'));
536 delete config; 542 delete config;
537 543
538 delete keys; 544 delete keys;
539 keys = new Keys(file); 545 if (index < 0 || (int)maps.count() <= index)
546 keys = new Keys();
547 else
548 keys = new Keys(maps[index]);
549
540 repaint(FALSE); 550 repaint(FALSE);
541 551
542} 552}
@@ -849,10 +859,14 @@ Keys::Keys() {
849 859
850 Config *config = new Config ("multikey"); 860 Config *config = new Config ("multikey");
851 config->setGroup( "keymaps" ); 861 config->setGroup( "keymaps" );
852 QString key_map = config->readEntry( "current" ); 862 QStringList maps = config->readListEntry ("maps", QChar('|'));
863
864 int index = config->readNumEntry( "current", -1 );
853 delete config; 865 delete config;
854 866
855 if (key_map.isNull()) { 867 QString key_map;
868
869 if (index < 0 || (int)maps.count() <= index) {
856 870
857 Config *config = new Config("locale"); 871 Config *config = new Config("locale");
858 config->setGroup( "Language" ); 872 config->setGroup( "Language" );
@@ -862,6 +876,9 @@ Keys::Keys() {
862 key_map = QPEApplication::qpeDir() + "/share/multikey/" 876 key_map = QPEApplication::qpeDir() + "/share/multikey/"
863 + l + ".keymap"; 877 + l + ".keymap";
864 878
879 } else {
880
881 key_map = maps[index];
865 } 882 }
866 883
867 884
diff --git a/inputmethods/multikey/keyboard.h b/inputmethods/multikey/keyboard.h
index 400edc0..7a8d4b4 100644
--- a/inputmethods/multikey/keyboard.h
+++ b/inputmethods/multikey/keyboard.h
@@ -113,7 +113,7 @@ private slots:
113 void repeat(); 113 void repeat();
114 void togglePickboard(bool on_off); 114 void togglePickboard(bool on_off);
115 void setMapToDefault(); 115 void setMapToDefault();
116 void setMapToFile(QString file); 116 void setMapToFile(int index);
117 117
118private: 118private:
119 int getKey( int &w, int j = -1 ); 119 int getKey( int &w, int j = -1 );