summaryrefslogtreecommitdiff
path: root/inputmethods
Unidiff
Diffstat (limited to 'inputmethods') (more/less context) (show whitespace changes)
-rw-r--r--inputmethods/multikey/configdlg.cpp54
-rw-r--r--inputmethods/multikey/configdlg.h7
-rw-r--r--inputmethods/multikey/keyboard.cpp63
-rw-r--r--inputmethods/multikey/keyboard.h10
4 files changed, 119 insertions, 15 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index ac132d3..1e104a6 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -1,7 +1,8 @@
1/* 1/*
2 * TODO 2 * TODO
3 * make a font selection thing (size too) 3 * make a font selection thing (size too)
4 * make a cursor thing
4 * 5 *
5 * 6 *
6 * 7 *
7 */ 8 */
@@ -23,13 +24,15 @@
23#include <qpushbutton.h> 24#include <qpushbutton.h>
24#include <qlistbox.h> 25#include <qlistbox.h>
25#include <qstringlist.h> 26#include <qstringlist.h>
26#include <opie/ofiledialog.h> 27#include <opie/ofiledialog.h>
28#include <opie/colordialog.h>
27#include <qdir.h> 29#include <qdir.h>
28#include <qfileinfo.h> 30#include <qfileinfo.h>
29#include "configdlg.h" 31#include "configdlg.h"
30#include "keyboard.h" 32#include "keyboard.h"
31 33
34// ConfigDlg::ConfigDlg() {{{1
32ConfigDlg::ConfigDlg () : QTabWidget () 35ConfigDlg::ConfigDlg () : QTabWidget ()
33{ 36{
34 setCaption( tr("Multikey Configuration") ); 37 setCaption( tr("Multikey Configuration") );
35 Config config ("multikey"); 38 Config config ("multikey");
@@ -103,8 +106,10 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
103 connect(add_button, SIGNAL(clicked()), SLOT(addMap())); 106 connect(add_button, SIGNAL(clicked()), SLOT(addMap()));
104 107
105 remove_button = new QPushButton(tr("Remove"), add_remove_grid); 108 remove_button = new QPushButton(tr("Remove"), add_remove_grid);
106 remove_button->setFlat((bool)1); 109 remove_button->setFlat((bool)1);
110 if ((int)map_dir.count() >= keymaps->currentItem())
111 remove_button->setDisabled(true);
107 connect(remove_button, SIGNAL(clicked()), SLOT(removeMap())); 112 connect(remove_button, SIGNAL(clicked()), SLOT(removeMap()));
108 113
109 pick_button = new QCheckBox(tr("Pickboard"), gen_box); 114 pick_button = new QCheckBox(tr("Pickboard"), gen_box);
110 115
@@ -128,14 +133,27 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
128 color_box->setSpacing(3); 133 color_box->setSpacing(3);
129 addTab(color_box, tr("Colors")); 134 addTab(color_box, tr("Colors"));
130 135
131 QLabel *label; 136 QLabel *label;
137 QStringList color;
132 138
133 label = new QLabel(tr("Key Color"), color_box); 139 label = new QLabel(tr("Key Color"), color_box);
134 QPushButton *button = new QPushButton(color_box); 140 key_color_button = new QPushButton(color_box);
135 button->setFlat((bool)1); 141 connect(key_color_button, SIGNAL(clicked()), SLOT(keyColorButtonClicked()));
142 key_color_button->setFlat((bool)1);
143
144 config.setGroup("colors");
145 color = config.readListEntry("keycolor", QChar(','));
146 if (color.isEmpty()) {
147 color = QStringList::split(",", "240,240,240");
148 config.writeEntry("keycolor", color.join(","));
149
150 }
151 key_color_button->setBackgroundColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()));
152
153
136 label = new QLabel(tr("Key Pressed Color"), color_box); 154 label = new QLabel(tr("Key Pressed Color"), color_box);
137 button = new QPushButton(color_box); 155 QPushButton *button = new QPushButton(color_box);
138 button->setFlat((bool)1); 156 button->setFlat((bool)1);
139 label = new QLabel(tr("Line Color"), color_box); 157 label = new QLabel(tr("Line Color"), color_box);
140 button = new QPushButton(color_box); 158 button = new QPushButton(color_box);
141 button->setFlat((bool)1); 159 button->setFlat((bool)1);
@@ -163,30 +181,29 @@ void ConfigDlg::pickTog() {
163 * listItem. therefor you have to minus one to the index before you access it. 181 * listItem. therefor you have to minus one to the index before you access it.
164 * 182 *
165 */ 183 */
166 184
185// ConfigDlg::setMap {{{1
167void ConfigDlg::setMap(int index) { 186void ConfigDlg::setMap(int index) {
168 187
169 if (index == 0) { 188 if (index == 0) {
170 189
171 remove_button->setDisabled(true); 190 remove_button->setDisabled(true);
172
173 emit setMapToDefault(); 191 emit setMapToDefault();
174 } 192 }
175 else if ((uint)index <= default_maps.count()) { 193 else if ((uint)index <= default_maps.count()) {
176 194
177 remove_button->setDisabled(true); 195 remove_button->setDisabled(true);
178
179 emit setMapToFile(keymaps->text(index)); 196 emit setMapToFile(keymaps->text(index));
180 197
181 } else { 198 } else {
182 199
183 remove_button->setEnabled(true); 200 remove_button->setEnabled(true);
184
185 emit setMapToFile(keymaps->text(index)); 201 emit setMapToFile(keymaps->text(index));
186 } 202 }
187} 203}
188 204
205// ConfigDlg::addMap() {{{1
189void ConfigDlg::addMap() { 206void ConfigDlg::addMap() {
190 207
191 QString map = OFileDialog::getOpenFileName(1, QDir::home().absPath()); 208 QString map = OFileDialog::getOpenFileName(1, QDir::home().absPath());
192 Config config ("multikey"); 209 Config config ("multikey");
@@ -196,13 +213,14 @@ void ConfigDlg::addMap() {
196 keymaps->insertItem(map); 213 keymaps->insertItem(map);
197 keymaps->setSelected(keymaps->count() - 1, true); 214 keymaps->setSelected(keymaps->count() - 1, true);
198 215
199 216
200 config.writeEntry("maps", maps.join("|")); 217 config.writeEntry("maps", maps, QChar('|'));
201 config.writeEntry("current", map); 218 config.writeEntry("current", map);
202 219
203} 220}
204 221
222// ConfigDlg::removeMap() {{{1
205void ConfigDlg::removeMap() { 223void ConfigDlg::removeMap() {
206 224
207 cout << "removing : " << custom_maps[keymaps->currentItem() - default_maps.count() - 1] << "\n"; 225 cout << "removing : " << custom_maps[keymaps->currentItem() - default_maps.count() - 1] << "\n";
208 cout << "currentItem : " << keymaps->currentItem() << "\n"; 226 cout << "currentItem : " << keymaps->currentItem() << "\n";
@@ -216,6 +234,26 @@ void ConfigDlg::removeMap() {
216 234
217 // write the changes 235 // write the changes
218 Config config ("multikey"); 236 Config config ("multikey");
219 config.setGroup("keymaps"); 237 config.setGroup("keymaps");
220 config.writeEntry("maps", custom_maps.join("|")); 238 config.writeEntry("maps", custom_maps, QChar('|'));
239}
240
241// ConfigDlg::color {{{1
242void ConfigDlg::keyColorButtonClicked() {
243
244 Config config ("multikey");
245 config.setGroup ("colors");
246
247 QStringList color = config.readListEntry("keycolor", QChar(','));
248
249 QColor newcolor = OColorDialog::getColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()));
250
251 color[0].setNum(newcolor.red());
252 color[1].setNum(newcolor.green());
253 color[2].setNum(newcolor.blue());
254
255 config.writeEntry("keycolor", color, QChar(','));
256
257 key_color_button->setBackgroundColor(newcolor);
258 emit reloadKeyboard();
221} 259}
diff --git a/inputmethods/multikey/configdlg.h b/inputmethods/multikey/configdlg.h
index 07d109c..ae7afe2 100644
--- a/inputmethods/multikey/configdlg.h
+++ b/inputmethods/multikey/configdlg.h
@@ -17,15 +17,19 @@ 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 map); 20 void setMapToFile(QString map);
21 void reloadKeyboard();
21 22
22private slots: 23private slots:
23 void pickTog(); 24 void pickTog();
24 void setMap(int index); 25 void setMap(int index);
25 void addMap(); 26 void addMap();
26 void removeMap(); 27 void removeMap();
27 28
29 // all those required slots for the color push buttons
30 void keyColorButtonClicked();
31
28private: 32private:
29 QCheckBox *pick_button; 33 QCheckBox *pick_button;
30 QListBox *keymaps; 34 QListBox *keymaps;
31 QPushButton *add_button; 35 QPushButton *add_button;
@@ -34,7 +38,10 @@ private:
34 38
35 QStringList default_maps; // the maps in your share/multikey/ dir 39 QStringList default_maps; // the maps in your share/multikey/ dir
36 QStringList custom_maps; // maps you added with the 'add' button 40 QStringList custom_maps; // maps you added with the 'add' button
37 41
42 /* color buttons */
43 QPushButton *key_color_button;
44
38}; 45};
39 46
40#endif 47#endif
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index ac3d9be..68918a6 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -48,8 +48,9 @@ Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
48 unicode(-1), qkeycode(0), modifiers(0), schar(0), mchar(0), echar(0), 48 unicode(-1), qkeycode(0), modifiers(0), schar(0), mchar(0), echar(0),
49 configdlg(0) 49 configdlg(0)
50 50
51{ 51{
52
52 // get the default font 53 // get the default font
53 Config *config = new Config( "qpe" ); 54 Config *config = new Config( "qpe" );
54 config->setGroup( "Appearance" ); 55 config->setGroup( "Appearance" );
55 QString familyStr = config->readEntry( "FontFamily", "fixed" ); 56 QString familyStr = config->readEntry( "FontFamily", "fixed" );
@@ -71,14 +72,17 @@ Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
71 this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) ); 72 this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) );
72 73
73 } else picks->hide(); 74 } else picks->hide();
74 75
76 loadKeyboardColors();
77
75 keys = new Keys(); 78 keys = new Keys();
76 79
77 repeatTimer = new QTimer( this ); 80 repeatTimer = new QTimer( this );
78 connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) ); 81 connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) );
79 82
80} 83}
84
81Keyboard::~Keyboard() { 85Keyboard::~Keyboard() {
82 86
83 if ( configdlg ) { 87 if ( configdlg ) {
84 delete (ConfigDlg *) configdlg; 88 delete (ConfigDlg *) configdlg;
@@ -155,13 +159,8 @@ void Keyboard::paintEvent(QPaintEvent* e)
155/* Keyboard::drawKeyboard {{{1 */ 159/* Keyboard::drawKeyboard {{{1 */
156 160
157void Keyboard::drawKeyboard(QPainter &p, int row, int col) 161void Keyboard::drawKeyboard(QPainter &p, int row, int col)
158{ 162{
159 QColor keycolor =
160 QColor(240,240,240);
161 QColor keycolor_pressed = QColor(171,183,198);
162 QColor keycolor_lines = QColor(138,148,160);
163 QColor textcolor = QColor(43,54,68);
164 163
165 164
166 if (row != -1 && col != -1) { //just redraw one key 165 if (row != -1 && col != -1) { //just redraw one key
167 166
@@ -181,14 +180,13 @@ void Keyboard::drawKeyboard(QPainter &p, int row, int col)
181 QPixmap *pix = keys->pix(row,col); 180 QPixmap *pix = keys->pix(row,col);
182 181
183 ushort c = keys->uni(row, col); 182 ushort c = keys->uni(row, col);
184 183
185 if (!pix) {
186 p.setPen(textcolor); 184 p.setPen(textcolor);
185 if (!pix)
187 p.drawText(x, y, 186 p.drawText(x, y,
188 defaultKeyWidth * keyWidth, keyHeight, 187 defaultKeyWidth * keyWidth, keyHeight,
189 AlignCenter, ((shift || lock) && keys->shift(c)) ? (QChar)keys->shift(c) : (QChar)c); 188 AlignCenter, ((shift || lock) && keys->shift(c)) ? (QChar)keys->shift(c) : (QChar)c);
190 }
191 else 189 else
192 // center the image in the middle of the key 190 // center the image in the middle of the key
193 p.drawPixmap( x + (defaultKeyWidth * keyWidth - pix->width())/2, 191 p.drawPixmap( x + (defaultKeyWidth * keyWidth - pix->width())/2,
194 y + (keyHeight - pix->height())/2 + 1, 192 y + (keyHeight - pix->height())/2 + 1,
@@ -291,8 +289,10 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
291 connect(configdlg, SIGNAL(setMapToDefault()), 289 connect(configdlg, SIGNAL(setMapToDefault()),
292 this, SLOT(setMapToDefault())); 290 this, SLOT(setMapToDefault()));
293 connect(configdlg, SIGNAL(setMapToFile(QString)), 291 connect(configdlg, SIGNAL(setMapToFile(QString)),
294 this, SLOT(setMapToFile(QString))); 292 this, SLOT(setMapToFile(QString)));
293 connect(configdlg, SIGNAL(reloadKeyboard()),
294 this, SLOT(reloadKeyboard()));
295 configdlg->showMaximized(); 295 configdlg->showMaximized();
296 configdlg->show(); 296 configdlg->show();
297 configdlg->raise(); 297 configdlg->raise();
298 } 298 }
@@ -547,8 +547,57 @@ void Keyboard::setMapToFile(QString map) {
547 repaint(FALSE); 547 repaint(FALSE);
548 548
549} 549}
550 550
551/* Keybaord::setColor {{{1 */
552void Keyboard::reloadKeyboard() {
553
554 // reload colors and redraw
555 loadKeyboardColors();
556 repaint();
557
558}
559
560void Keyboard::loadKeyboardColors() {
561
562 Config config ("multikey");
563 config.setGroup("colors");
564
565 QStringList color;
566 color = config.readListEntry("keycolor", QChar(','));
567 if (color.isEmpty()) {
568 color = QStringList::split(",", "240,240,240");
569 config.writeEntry("keycolor", color.join(","));
570
571 }
572 keycolor = QColor(color[0].toInt(), color[1].toInt(), color[2].toInt());
573
574 color = config.readListEntry("keycolor_pressed", QChar(','));
575 if (color.isEmpty()) {
576 color = QStringList::split(",", "171,183,198");
577 config.writeEntry("keycolor_pressed", color.join(","));
578
579 }
580 keycolor_pressed = QColor(color[0].toInt(), color[1].toInt(), color[2].toInt());
581
582 color = config.readListEntry("keycolor_lines", QChar(','));
583 if (color.isEmpty()) {
584 color = QStringList::split(",", "138,148,160");
585 config.writeEntry("keycolor_lines", color.join(","));
586
587 }
588 keycolor_lines = QColor(color[0].toInt(), color[1].toInt(), color[2].toInt());
589
590 color = config.readListEntry("textcolor", QChar(','));
591 if (color.isEmpty()) {
592 color = QStringList::split(",", "43,54,68");
593 config.writeEntry("textcolor", color.join(","));
594
595 }
596 textcolor = QColor(color[0].toInt(), color[1].toInt(), color[2].toInt());
597
598}
599
551/* korean input functions {{{1 600/* korean input functions {{{1
552 * 601 *
553 * TODO 602 * TODO
554 * one major problem with this implementation is that you can't move the 603 * one major problem with this implementation is that you can't move the
diff --git a/inputmethods/multikey/keyboard.h b/inputmethods/multikey/keyboard.h
index 8c4e666..6e577ab 100644
--- a/inputmethods/multikey/keyboard.h
+++ b/inputmethods/multikey/keyboard.h
@@ -114,8 +114,11 @@ private slots:
114 void togglePickboard(bool on_off); 114 void togglePickboard(bool on_off);
115 void setMapToDefault(); 115 void setMapToDefault();
116 void setMapToFile(QString map); 116 void setMapToFile(QString map);
117 117
118 // used to redraw keyboard after edited colors
119 void reloadKeyboard();
120
118private: 121private:
119 int getKey( int &w, int j = -1 ); 122 int getKey( int &w, int j = -1 );
120 void clearHighlight(); 123 void clearHighlight();
121 124
@@ -151,8 +154,15 @@ private:
151 ushort constoe(const ushort c); 154 ushort constoe(const ushort c);
152 155
153 QTimer *repeatTimer; 156 QTimer *repeatTimer;
154 157
158 /* colors */
159 void loadKeyboardColors();
160 QColor keycolor;
161 QColor keycolor_pressed;
162 QColor keycolor_lines;
163 QColor textcolor;
164
155 ConfigDlg *configdlg; 165 ConfigDlg *configdlg;
156}; 166};
157 167
158 168