summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/configdlg.cpp60
-rw-r--r--inputmethods/multikey/configdlg.h9
-rw-r--r--inputmethods/multikey/keyboard.cpp10
-rw-r--r--inputmethods/multikey/keyboard.h1
4 files changed, 56 insertions, 24 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index f23bf1c..7bea589 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -1,15 +1,12 @@
1/* 1/*
2 * TODO 2 * TODO
3 * make a font selection thing 3 * make a font selection thing (size too)
4 * 4 *
5 * FIXME
6 * if you open the config dialog and close it from the little (x) button on the title bar,
7 * you have to hit the button on the keyboard twice for it to open the next time
8 * 5 *
9 * 6 *
10 */ 7 */
11 8
12#include <qpe/qpeapplication.h> 9#include <qpe/qpeapplication.h>
13#include <qpe/config.h> 10#include <qpe/config.h>
14 11
15#include <qwidget.h> 12#include <qwidget.h>
@@ -17,52 +14,60 @@
17#include <qtabwidget.h> 14#include <qtabwidget.h>
18#include <qvbox.h> 15#include <qvbox.h>
19#include <qgrid.h> 16#include <qgrid.h>
20#include <qgroupbox.h> 17#include <qgroupbox.h>
21#include <qlabel.h> 18#include <qlabel.h>
22#include <qcheckbox.h> 19#include <qcheckbox.h>
23#include <qsizepolicy.h> 20#include <qsizepolicy.h>
24#include <qpushbutton.h> 21#include <qpushbutton.h>
25#include <qcombobox.h> 22#include <qlistbox.h>
26#include "configdlg.h" 23#include "configdlg.h"
27#include "keyboard.h" 24#include "keyboard.h"
28 25
29ConfigDlg::ConfigDlg () : QTabWidget () 26ConfigDlg::ConfigDlg () : QTabWidget ()
30{ 27{
31 setCaption( tr("Multikey Configuration") ); 28 setCaption( tr("Multikey Configuration") );
32 29
33 /* 30 /*
34 * 'general config' tab 31 * 'general config' tab
35 */ 32 */
36 33
37 QVBox *gen_box = new QVBox (this); 34 QVBox *gen_box = new QVBox (this);
38 gen_box->setMargin(3); 35 gen_box->setMargin(3);
39 addTab(gen_box, tr("General Settings")); 36 addTab(gen_box, tr("General Settings"));
40 37
41 QGroupBox *map_group = new QGroupBox (2, Qt::Horizontal, tr("Keymap File"), gen_box); 38 QGroupBox *map_group = new QGroupBox (2, Qt::Vertical, tr("Keymap File"), gen_box);
42 39
43 map_combo = new QComboBox ((bool)0, map_group); 40 keymaps = new QListBox (map_group);
44 map_combo->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); 41 keymaps->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
42 //keymaps->setMaximumHeight(150);
45 43
46 QString cur(tr("Current Language")); 44 QString cur(tr("Current Language"));
47 map_combo->insertItem(cur); 45 keymaps->insertItem(cur);
48 connect(map_combo, SIGNAL(activated(int)), SLOT(setMap(int))); 46 connect(keymaps, SIGNAL(highlighted(int)), SLOT(setMap(int)));
49 47
50 QString ko(tr(QPEApplication::qpeDir() + "/share/multikey/ko.keymap")); 48 QString ko(QPEApplication::qpeDir() + "/share/multikey/ko.keymap");
51 map_combo->insertItem(ko); 49 keymaps->insertItem(ko);
52 50
53 QString en(tr(QPEApplication::qpeDir() + "/share/multikey/en.keymap")); 51 QString en(QPEApplication::qpeDir() + "/share/multikey/en.keymap");
54 map_combo->insertItem(en); 52 keymaps->insertItem(en);
55 53
56 QString de(tr(QPEApplication::qpeDir() + "/share/multikey/de.keymap")); 54 QString de(QPEApplication::qpeDir() + "/share/multikey/de.keymap");
57 map_combo->insertItem(de); 55 keymaps->insertItem(de);
58 56
59 QPushButton *button = new QPushButton(tr("Browse..."), map_group); 57 QGrid *add_remove_grid = new QGrid(2, map_group);
60 button->setFlat((bool)1); 58 add_remove_grid->setMargin(3);
59 add_remove_grid->setSpacing(3);
60
61 add_button = new QPushButton(tr("Add"), add_remove_grid);
62 add_button->setFlat((bool)1);
63
64 remove_button = new QPushButton(tr("Remove"), add_remove_grid);
65 remove_button->setFlat((bool)1);
61 66
62 pick_button = new QCheckBox(tr("Pickboard"), gen_box); 67 pick_button = new QCheckBox(tr("Pickboard"), gen_box);
63 68
64 Config config ("multikey"); 69 Config config ("multikey");
65 config.setGroup ("pickboard"); 70 config.setGroup ("pickboard");
66 bool pick_open = config.readBoolEntry ("open", "0"); // default closed 71 bool pick_open = config.readBoolEntry ("open", "0"); // default closed
67 if (pick_open) { 72 if (pick_open) {
68 73
@@ -74,22 +79,23 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
74 79
75 /* 80 /*
76 * 'color' tab 81 * 'color' tab
77 */ 82 */
78 83
79 QGrid *color_box = new QGrid(2, this); 84 QGrid *color_box = new QGrid(2, this);
80 color_box->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); 85 color_box->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
81 color_box->setMargin(3); 86 color_box->setMargin(3);
87 color_box->setSpacing(3);
82 addTab(color_box, tr("Colors")); 88 addTab(color_box, tr("Colors"));
83 89
84 QLabel *label; 90 QLabel *label;
85 91
86 label = new QLabel(tr("Key Color"), color_box); 92 label = new QLabel(tr("Key Color"), color_box);
87 button = new QPushButton(color_box); 93 QPushButton *button = new QPushButton(color_box);
88 button->setFlat((bool)1); 94 button->setFlat((bool)1);
89 label = new QLabel(tr("Key Pressed Color"), color_box); 95 label = new QLabel(tr("Key Pressed Color"), color_box);
90 button = new QPushButton(color_box); 96 button = new QPushButton(color_box);
91 button->setFlat((bool)1); 97 button->setFlat((bool)1);
92 label = new QLabel(tr("Line Color"), color_box); 98 label = new QLabel(tr("Line Color"), color_box);
93 button = new QPushButton(color_box); 99 button = new QPushButton(color_box);
94 button->setFlat((bool)1); 100 button->setFlat((bool)1);
95 label = new QLabel(tr("Text Color"), color_box); 101 label = new QLabel(tr("Text Color"), color_box);
@@ -109,15 +115,29 @@ void ConfigDlg::pickTog() {
109 115
110 emit pickboardToggled(pick_button->isChecked()); 116 emit pickboardToggled(pick_button->isChecked());
111} 117}
112 118
113void ConfigDlg::setMap(int index) { 119void ConfigDlg::setMap(int index) {
114 120
115 if (index == 0) { 121 if (index == 0) {
116 122
123 if (remove_button->isEnabled())
124 remove_button->setDisabled(true);
125
117 emit setMapToDefault(); 126 emit setMapToDefault();
118 } 127 }
119 else { 128 else {
120 129
121 emit setMapToFile(map_combo->text(index)); 130 if (!remove_button->isEnabled())
131 remove_button->setEnabled(true);
132
133 emit setMapToFile(keymaps->text(index));
122 } 134 }
123} 135}
136
137void ConfigDlg::addMap() {
138
139}
140
141void ConfigDlg::removeMap(int index) {
142
143}
diff --git a/inputmethods/multikey/configdlg.h b/inputmethods/multikey/configdlg.h
index 54127a0..1a64764 100644
--- a/inputmethods/multikey/configdlg.h
+++ b/inputmethods/multikey/configdlg.h
@@ -1,12 +1,13 @@
1#include <qpe/qpeapplication.h> 1#include <qpe/qpeapplication.h>
2#include <qtabwidget.h> 2#include <qtabwidget.h>
3#include <qcheckbox.h> 3#include <qcheckbox.h>
4#include <qcombobox.h> 4#include <qlistbox.h>
5#include <qpushbutton.h>
5 6
6#ifndef CONFIGDLG_H 7#ifndef CONFIGDLG_H
7#define CONFIGDLG_H 8#define CONFIGDLG_H
8 9
9class ConfigDlg : public QTabWidget 10class ConfigDlg : public QTabWidget
10{ 11{
11 Q_OBJECT 12 Q_OBJECT
12 13
@@ -16,16 +17,20 @@ public:
16signals: 17signals:
17 void pickboardToggled(bool on_off); 18 void pickboardToggled(bool on_off);
18 void setMapToDefault(); 19 void setMapToDefault();
19 void setMapToFile(QString file); 20 void setMapToFile(QString file);
20 21
21private slots: 22private slots:
22 void pickTog(); 23 void pickTog();
23 void setMap(int index); 24 void setMap(int index);
25 void addMap();
26 void removeMap(int index);
24 27
25private: 28private:
26 QCheckBox *pick_button; 29 QCheckBox *pick_button;
27 QComboBox *map_combo; 30 QListBox *keymaps;
31 QPushButton *add_button;
32 QPushButton *remove_button;
28 33
29}; 34};
30 35
31#endif 36#endif
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 2a80f1e..b71f929 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -28,17 +28,16 @@
28#include <qpainter.h> 28#include <qpainter.h>
29#include <qfontmetrics.h> 29#include <qfontmetrics.h>
30#include <qtimer.h> 30#include <qtimer.h>
31#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
32#include <qpe/config.h> 32#include <qpe/config.h>
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 <iostream.h>
37 36
38#include <sys/utsname.h> 37#include <sys/utsname.h>
39 38
40 39
41#define USE_SMALL_BACKSPACE 40#define USE_SMALL_BACKSPACE
42 41
43/* Keyboard::Keyboard {{{1 */ 42/* Keyboard::Keyboard {{{1 */
44Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) : 43Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
@@ -72,16 +71,24 @@ Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
72 } else picks->hide(); 71 } else picks->hide();
73 72
74 keys = new Keys(); 73 keys = new Keys();
75 74
76 repeatTimer = new QTimer( this ); 75 repeatTimer = new QTimer( this );
77 connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) ); 76 connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) );
78 77
79} 78}
79Keyboard::~Keyboard() {
80
81 if ( configdlg ) {
82 delete (ConfigDlg *) configdlg;
83 configdlg = 0;
84 }
85
86}
80 87
81/* Keyboard::resizeEvent {{{1 */ 88/* Keyboard::resizeEvent {{{1 */
82void Keyboard::resizeEvent(QResizeEvent*) 89void Keyboard::resizeEvent(QResizeEvent*)
83{ 90{
84 int ph = picks->sizeHint().height(); 91 int ph = picks->sizeHint().height();
85 picks->setGeometry( 0, 0, width(), ph ); 92 picks->setGeometry( 0, 0, width(), ph );
86 keyHeight = (height()-(usePicks ? ph : 0))/5; 93 keyHeight = (height()-(usePicks ? ph : 0))/5;
87 94
@@ -954,17 +961,16 @@ void Keys::setKeysFromFile(const char * filename) {
954 tmp >> name >> equals >> value; 961 tmp >> name >> equals >> value;
955 962
956 if (name == "lang") { 963 if (name == "lang") {
957 964
958 lang = value; 965 lang = value;
959 966
960 } 967 }
961 968
962 cout << name << " = " << value << "\n";
963 buf = t.readLine(); 969 buf = t.readLine();
964 } 970 }
965 // comments 971 // comments
966 else if (buf.contains(QRegExp("^\\s*#"))) { 972 else if (buf.contains(QRegExp("^\\s*#"))) {
967 973
968 buf = t.readLine(); 974 buf = t.readLine();
969 975
970 } else { // blank line, or garbage 976 } else { // blank line, or garbage
diff --git a/inputmethods/multikey/keyboard.h b/inputmethods/multikey/keyboard.h
index c2efe10..8ca50ea 100644
--- a/inputmethods/multikey/keyboard.h
+++ b/inputmethods/multikey/keyboard.h
@@ -87,16 +87,17 @@ private:
87 87
88}; 88};
89 89
90class Keyboard : public QFrame 90class Keyboard : public QFrame
91{ 91{
92 Q_OBJECT 92 Q_OBJECT
93public: 93public:
94 Keyboard( QWidget* parent=0, const char* name=0, WFlags f=0 ); 94 Keyboard( QWidget* parent=0, const char* name=0, WFlags f=0 );
95 ~Keyboard();
95 96
96 void resetState(); 97 void resetState();
97 98
98 void mousePressEvent(QMouseEvent*); 99 void mousePressEvent(QMouseEvent*);
99 void mouseReleaseEvent(QMouseEvent*); 100 void mouseReleaseEvent(QMouseEvent*);
100 void resizeEvent(QResizeEvent*); 101 void resizeEvent(QResizeEvent*);
101 void paintEvent(QPaintEvent* e); 102 void paintEvent(QPaintEvent* e);
102 //void timerEvent(QTimerEvent* e); 103 //void timerEvent(QTimerEvent* e);