summaryrefslogtreecommitdiff
path: root/inputmethods/multikey
Unidiff
Diffstat (limited to 'inputmethods/multikey') (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/configdlg.cpp4
-rw-r--r--inputmethods/multikey/keyboard.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index 1fba9bc..fe5051d 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -34,97 +34,97 @@
34#include "keyboard.h" 34#include "keyboard.h"
35 35
36using namespace Opie; 36using namespace Opie;
37using namespace Opie::Ui; 37using namespace Opie::Ui;
38// ConfigDlg::ConfigDlg() {{{1 38// ConfigDlg::ConfigDlg() {{{1
39ConfigDlg::ConfigDlg () : QDialog () 39ConfigDlg::ConfigDlg () : QDialog ()
40{ 40{
41 setCaption( tr("Multikey Configuration") ); 41 setCaption( tr("Multikey Configuration") );
42 Config config ("multikey"); 42 Config config ("multikey");
43 config.setGroup("keymaps"); 43 config.setGroup("keymaps");
44 QString current_map = config.readEntry("current", 0); 44 QString current_map = config.readEntry("current", 0);
45 45
46 /* 46 /*
47 * 'general config' tab 47 * 'general config' tab
48 */ 48 */
49 49
50 QVBoxLayout *base_lay = new QVBoxLayout(this); 50 QVBoxLayout *base_lay = new QVBoxLayout(this);
51 51
52 QTabWidget *tabs = new QTabWidget(this, "tabs"); 52 QTabWidget *tabs = new QTabWidget(this, "tabs");
53 53
54 QWidget *gen_box = new QWidget(tabs, "gen_tab"); 54 QWidget *gen_box = new QWidget(tabs, "gen_tab");
55 QVBoxLayout *gen_lay = new QVBoxLayout(gen_box); 55 QVBoxLayout *gen_lay = new QVBoxLayout(gen_box);
56 gen_lay->setMargin(3); 56 gen_lay->setMargin(3);
57 QGroupBox *map_group = new QGroupBox (2, Qt::Vertical, tr("Keymap File"), gen_box); 57 QGroupBox *map_group = new QGroupBox (2, Qt::Vertical, tr("Keymap File"), gen_box);
58 58
59 QHBox *hbox1 = new QHBox(map_group); 59 QHBox *hbox1 = new QHBox(map_group);
60 keymaps = new QListBox(hbox1); 60 keymaps = new QListBox(hbox1);
61 keymaps->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); 61 keymaps->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
62 QVBox *vbox1 = new QVBox(hbox1); 62 QVBox *vbox1 = new QVBox(hbox1);
63 63
64 QToolButton *tb1 = new QToolButton(vbox1, tr("Move Up")); 64 QToolButton *tb1 = new QToolButton(vbox1, tr("Move Up"));
65 tb1->setPixmap(Resource::loadPixmap("up")); 65 tb1->setPixmap(Resource::loadPixmap("up"));
66 tb1->setAutoRaise(TRUE); 66 tb1->setAutoRaise(TRUE);
67 tb1->setFocusPolicy(QWidget::NoFocus); 67 tb1->setFocusPolicy(QWidget::NoFocus);
68 tb1->setToggleButton(FALSE); 68 tb1->setToggleButton(FALSE);
69 connect(tb1, SIGNAL(clicked()), this, SLOT(moveSelectedUp())); 69 connect(tb1, SIGNAL(clicked()), this, SLOT(moveSelectedUp()));
70 70
71 QToolButton *tb2 = new QToolButton(vbox1, tr("Move Down")); 71 QToolButton *tb2 = new QToolButton(vbox1, tr("Move Down"));
72 tb2->setPixmap(Resource::loadPixmap("down")); 72 tb2->setPixmap(Resource::loadPixmap("down"));
73 tb2->setAutoRaise(TRUE); 73 tb2->setAutoRaise(TRUE);
74 tb2->setFocusPolicy(QWidget::NoFocus); 74 tb2->setFocusPolicy(QWidget::NoFocus);
75 tb2->setToggleButton(FALSE); 75 tb2->setToggleButton(FALSE);
76 connect(tb2, SIGNAL(clicked()), this, SLOT(moveSelectedDown())); 76 connect(tb2, SIGNAL(clicked()), this, SLOT(moveSelectedDown()));
77 77
78 QString cur(tr("Current Language")); 78 QString cur(tr("Current Language"));
79 keymaps->insertItem(cur); 79 keymaps->insertItem(cur);
80 keymaps->setSelected(0, true); 80 keymaps->setSelected(0, true);
81 81
82 QDir map_dir(QPEApplication::qpeDir() + "/share/multikey", "*.keymap"); 82 QDir map_dir(QPEApplication::qpeDir() + "share/multikey", "*.keymap");
83 default_maps = map_dir.entryList(); // so i can access it in other places 83 default_maps = map_dir.entryList(); // so i can access it in other places
84 custom_maps = config.readListEntry("maps", QChar('|')); 84 custom_maps = config.readListEntry("maps", QChar('|'));
85 sw_maps = ConfigDlg::loadSw(); 85 sw_maps = ConfigDlg::loadSw();
86 86
87 QStringList sw_copy(sw_maps); 87 QStringList sw_copy(sw_maps);
88 for (uint i = 0; i < sw_copy.count(); i++) { 88 for (uint i = 0; i < sw_copy.count(); i++) {
89 89
90 QString keymap_map; 90 QString keymap_map;
91 if (sw_copy[i][0] != '/') { /* share/multikey */ 91 if (sw_copy[i][0] != '/') { /* share/multikey */
92 92
93 keymap_map = map_dir.absPath() + "/" + sw_copy[i]; 93 keymap_map = map_dir.absPath() + "/" + sw_copy[i];
94 } else { 94 } else {
95 95
96 if (map_dir.exists(QFileInfo(sw_copy[i]).fileName(), false) 96 if (map_dir.exists(QFileInfo(sw_copy[i]).fileName(), false)
97 || !QFile::exists(sw_copy[i])) { 97 || !QFile::exists(sw_copy[i])) {
98 98
99 custom_maps.remove(sw_copy[i]); 99 custom_maps.remove(sw_copy[i]);
100 sw_maps.remove(sw_copy[i]); 100 sw_maps.remove(sw_copy[i]);
101 101
102 // remove it from the list too 102 // remove it from the list too
103 config.writeEntry("maps", custom_maps.join("|")); 103 config.writeEntry("maps", custom_maps.join("|"));
104 104
105 continue; 105 continue;
106 } 106 }
107 keymap_map = sw_copy[i]; 107 keymap_map = sw_copy[i];
108 } 108 }
109 109
110 QFile map(keymap_map); 110 QFile map(keymap_map);
111 if (map.open(IO_ReadOnly)) { 111 if (map.open(IO_ReadOnly)) {
112 112
113 QString line; bool found = 0; 113 QString line; bool found = 0;
114 114
115 map.readLine(line, 1024); 115 map.readLine(line, 1024);
116 while (!map.atEnd()) { 116 while (!map.atEnd()) {
117 117
118 if (line.find(QRegExp("^title\\s*=\\s*")) != -1) { 118 if (line.find(QRegExp("^title\\s*=\\s*")) != -1) {
119 119
120 keymaps->insertItem(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace()); 120 keymaps->insertItem(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace());
121 found = 1; 121 found = 1;
122 break; 122 break;
123 } 123 }
124 map.readLine(line, 1024); 124 map.readLine(line, 1024);
125 } 125 }
126 if (!found) 126 if (!found)
127 keymaps->insertItem(keymap_map); 127 keymaps->insertItem(keymap_map);
128 128
129 map.close(); 129 map.close();
130 } 130 }
@@ -203,97 +203,97 @@ ConfigDlg::ConfigDlg () : QDialog ()
203 203
204 if (color.isEmpty()) { 204 if (color.isEmpty()) {
205 color = QStringList::split(",", "240,240,240"); 205 color = QStringList::split(",", "240,240,240");
206 config.writeEntry("keycolor", color.join(",")); 206 config.writeEntry("keycolor", color.join(","));
207 207
208 } 208 }
209 */ 209 */
210 keycolor_button->setPalette(QPalette(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))); 210 keycolor_button->setPalette(QPalette(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())));
211 211
212 212
213 label = new QLabel(tr("Key Pressed Color"), color_grid); 213 label = new QLabel(tr("Key Pressed Color"), color_grid);
214 keycolor_pressed_button = new QPushButton(color_grid); 214 keycolor_pressed_button = new QPushButton(color_grid);
215 connect(keycolor_pressed_button, SIGNAL(clicked()), SLOT(keyColorPressedClicked())); 215 connect(keycolor_pressed_button, SIGNAL(clicked()), SLOT(keyColorPressedClicked()));
216 keycolor_pressed_button->setFlat(TRUE); 216 keycolor_pressed_button->setFlat(TRUE);
217 color = config.readListEntry("keycolor_pressed", QChar(',')); 217 color = config.readListEntry("keycolor_pressed", QChar(','));
218 keycolor_pressed_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); 218 keycolor_pressed_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))));
219 219
220 label = new QLabel(tr("Line Color"), color_grid); 220 label = new QLabel(tr("Line Color"), color_grid);
221 keycolor_lines_button = new QPushButton(color_grid); 221 keycolor_lines_button = new QPushButton(color_grid);
222 connect(keycolor_lines_button, SIGNAL(clicked()), SLOT(keyColorLinesClicked())); 222 connect(keycolor_lines_button, SIGNAL(clicked()), SLOT(keyColorLinesClicked()));
223 keycolor_lines_button->setFlat(TRUE); 223 keycolor_lines_button->setFlat(TRUE);
224 color = config.readListEntry("keycolor_lines", QChar(',')); 224 color = config.readListEntry("keycolor_lines", QChar(','));
225 keycolor_lines_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); 225 keycolor_lines_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))));
226 226
227 227
228 label = new QLabel(tr("Text Color"), color_grid); 228 label = new QLabel(tr("Text Color"), color_grid);
229 textcolor_button = new QPushButton(color_grid); 229 textcolor_button = new QPushButton(color_grid);
230 connect(textcolor_button, SIGNAL(clicked()), SLOT(textColorClicked())); 230 connect(textcolor_button, SIGNAL(clicked()), SLOT(textColorClicked()));
231 textcolor_button->setFlat(TRUE); 231 textcolor_button->setFlat(TRUE);
232 color = config.readListEntry("textcolor", QChar(',')); 232 color = config.readListEntry("textcolor", QChar(','));
233 textcolor_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); 233 textcolor_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))));
234 234
235 label = new QLabel("", color_grid); // a spacer so the above buttons dont expand 235 label = new QLabel("", color_grid); // a spacer so the above buttons dont expand
236 label->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); 236 label->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
237 /* FIXME: hacked spacer height */ 237 /* FIXME: hacked spacer height */
238 QSpacerItem *spacer = new QSpacerItem(0, 300, QSizePolicy::Expanding, QSizePolicy::Maximum); 238 QSpacerItem *spacer = new QSpacerItem(0, 300, QSizePolicy::Expanding, QSizePolicy::Maximum);
239 239
240 color_lay->addWidget(color_grid, 0, 0); 240 color_lay->addWidget(color_grid, 0, 0);
241 color_lay->addItem(spacer); 241 color_lay->addItem(spacer);
242 242
243 tabs->addTab(color_box, tr("Colors")); 243 tabs->addTab(color_box, tr("Colors"));
244 base_lay->addWidget(tabs); 244 base_lay->addWidget(tabs);
245} 245}
246 246
247QStringList ConfigDlg::loadSw() 247QStringList ConfigDlg::loadSw()
248{ 248{
249 Config *config = new Config("multikey"); 249 Config *config = new Config("multikey");
250 config->setGroup("keymaps"); 250 config->setGroup("keymaps");
251 QDir map_dir(QPEApplication::qpeDir() + "/share/multikey", "*.keymap"); 251 QDir map_dir(QPEApplication::qpeDir() + "share/multikey", "*.keymap");
252 QStringList d_maps = map_dir.entryList(); // so i can access it in other places 252 QStringList d_maps = map_dir.entryList(); // so i can access it in other places
253 QStringList c_maps = config->readListEntry("maps", QChar('|')); 253 QStringList c_maps = config->readListEntry("maps", QChar('|'));
254 QStringList s_maps = config->readListEntry("sw", QChar('|')); 254 QStringList s_maps = config->readListEntry("sw", QChar('|'));
255 delete config; 255 delete config;
256 256
257 if (!s_maps.count()) 257 if (!s_maps.count())
258 { 258 {
259 s_maps = d_maps+c_maps; 259 s_maps = d_maps+c_maps;
260 } 260 }
261 else 261 else
262 { 262 {
263 /* Clear non existents entries */ 263 /* Clear non existents entries */
264 QStringList s_copy(s_maps); 264 QStringList s_copy(s_maps);
265 for (uint i = 0; i < s_copy.count(); ++i) { 265 for (uint i = 0; i < s_copy.count(); ++i) {
266 if (d_maps.find(s_copy[i]) == d_maps.end() 266 if (d_maps.find(s_copy[i]) == d_maps.end()
267 && c_maps.find(s_copy[i]) == c_maps.end()) { 267 && c_maps.find(s_copy[i]) == c_maps.end()) {
268 s_maps.remove(s_copy[i]); 268 s_maps.remove(s_copy[i]);
269 } 269 }
270 } 270 }
271 /* Update sw_maps from default_maps */ 271 /* Update sw_maps from default_maps */
272 for (uint i = 0; i < d_maps.count(); ++i) { 272 for (uint i = 0; i < d_maps.count(); ++i) {
273 if (s_maps.find(d_maps[i]) == s_maps.end()) { 273 if (s_maps.find(d_maps[i]) == s_maps.end()) {
274 s_maps.append(d_maps[i]); 274 s_maps.append(d_maps[i]);
275 } 275 }
276 } 276 }
277 /* Update sw_maps from custom_maps */ 277 /* Update sw_maps from custom_maps */
278 for (uint i = 0; i < c_maps.count(); ++i) { 278 for (uint i = 0; i < c_maps.count(); ++i) {
279 if (s_maps.find(c_maps[i]) == s_maps.end()) { 279 if (s_maps.find(c_maps[i]) == s_maps.end()) {
280 s_maps.append(c_maps[i]); 280 s_maps.append(c_maps[i]);
281 } 281 }
282 } 282 }
283 } 283 }
284 284
285 return s_maps; 285 return s_maps;
286} 286}
287 287
288void ConfigDlg::accept() 288void ConfigDlg::accept()
289{ 289{
290 /* Writing all stuffs to config */ 290 /* Writing all stuffs to config */
291 Config *config = new Config("multikey"); 291 Config *config = new Config("multikey");
292 config->setGroup("general"); 292 config->setGroup("general");
293 config->writeEntry("usePickboard", pick_button->isChecked()); // default closed 293 config->writeEntry("usePickboard", pick_button->isChecked()); // default closed
294 config->writeEntry("useRepeat", repeat_button->isChecked()); // default closed 294 config->writeEntry("useRepeat", repeat_button->isChecked()); // default closed
295 295
296 config->setGroup("keymaps"); 296 config->setGroup("keymaps");
297 config->writeEntry("sw", sw_maps, QChar('|')); 297 config->writeEntry("sw", sw_maps, QChar('|'));
298 config->writeEntry("maps", custom_maps, QChar('|')); 298 config->writeEntry("maps", custom_maps, QChar('|'));
299 delete config; 299 delete config;
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 7ddfd3e..f8cafd5 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -1332,102 +1332,102 @@ ushort Keyboard::constoe(const ushort c) {
1332 case 0x1112: return 0x11c2; 1332 case 0x1112: return 0x11c2;
1333 default: return 0; 1333 default: return 0;
1334 1334
1335 } 1335 }
1336 1336
1337 } else { //echar to schar 1337 } else { //echar to schar
1338 1338
1339 switch (c) { 1339 switch (c) {
1340 case 0x11a8: return 0x1100; 1340 case 0x11a8: return 0x1100;
1341 case 0x11a9: return 0x1101; 1341 case 0x11a9: return 0x1101;
1342 case 0x11ab: return 0x1102; 1342 case 0x11ab: return 0x1102;
1343 case 0x11ae: return 0x1103; 1343 case 0x11ae: return 0x1103;
1344 case 0x11af: return 0x1105; 1344 case 0x11af: return 0x1105;
1345 case 0x11b7: return 0x1106; 1345 case 0x11b7: return 0x1106;
1346 case 0x11b8: return 0x1107; 1346 case 0x11b8: return 0x1107;
1347 case 0x11ba: return 0x1109; 1347 case 0x11ba: return 0x1109;
1348 case 0x11bb: return 0x110a; 1348 case 0x11bb: return 0x110a;
1349 case 0x11bc: return 0x110b; 1349 case 0x11bc: return 0x110b;
1350 case 0x11bd: return 0x110c; 1350 case 0x11bd: return 0x110c;
1351 case 0x11be: return 0x110e; 1351 case 0x11be: return 0x110e;
1352 case 0x11bf: return 0x110f; 1352 case 0x11bf: return 0x110f;
1353 case 0x11c0: return 0x1110; 1353 case 0x11c0: return 0x1110;
1354 case 0x11c1: return 0x1111; 1354 case 0x11c1: return 0x1111;
1355 case 0x11c2: return 0x1112; 1355 case 0x11c2: return 0x1112;
1356 default: return 0; 1356 default: return 0;
1357 1357
1358 } 1358 }
1359 1359
1360 } 1360 }
1361} 1361}
1362 1362
1363 1363
1364// Keys::Keys {{{1 1364// Keys::Keys {{{1
1365 1365
1366Keys::Keys() { 1366Keys::Keys() {
1367 1367
1368 Config *config = new Config ("multikey"); 1368 Config *config = new Config ("multikey");
1369 config->setGroup( "keymaps" ); 1369 config->setGroup( "keymaps" );
1370 QString map = config->readEntry( "current" ); 1370 QString map = config->readEntry( "current" );
1371 delete config; 1371 delete config;
1372 1372
1373 if (map.isNull() || !(QFile(map).exists())) { 1373 if (map.isNull() || !(QFile(map).exists())) {
1374 1374
1375 Config *config = new Config("locale"); 1375 Config *config = new Config("locale");
1376 config->setGroup( "Language" ); 1376 config->setGroup( "Language" );
1377 QString l = config->readEntry( "Language" , "en" ); 1377 QString l = config->readEntry( "Language" , "en" );
1378 delete config; 1378 delete config;
1379 1379
1380 map = QPEApplication::qpeDir() + "/share/multikey/" 1380 map = QPEApplication::qpeDir() + "share/multikey/"
1381 + l + ".keymap"; 1381 + l + ".keymap";
1382 1382
1383 } 1383 }
1384 if (map.isNull() || !(QFile(map).exists())) { 1384 if (map.isNull() || !(QFile(map).exists())) {
1385 map = QPEApplication::qpeDir() + "/share/multikey/en.keymap"; 1385 map = QPEApplication::qpeDir() + "share/multikey/en.keymap";
1386 } 1386 }
1387 1387
1388 setKeysFromFile(map); 1388 setKeysFromFile(map);
1389} 1389}
1390 1390
1391Keys::Keys(const char * filename) { 1391Keys::Keys(const char * filename) {
1392 1392
1393 setKeysFromFile(filename); 1393 setKeysFromFile(filename);
1394} 1394}
1395 1395
1396// Keys::setKeysFromFile {{{2 1396// Keys::setKeysFromFile {{{2
1397void Keys::setKeysFromFile(const char * filename) { 1397void Keys::setKeysFromFile(const char * filename) {
1398 1398
1399 QFile f(filename); 1399 QFile f(filename);
1400 1400
1401 if (f.open(IO_ReadOnly)) { 1401 if (f.open(IO_ReadOnly)) {
1402 1402
1403 QTextStream t(&f); 1403 QTextStream t(&f);
1404 int row; 1404 int row;
1405 int qcode; 1405 int qcode;
1406 ushort unicode; 1406 ushort unicode;
1407 int width; 1407 int width;
1408 QString buf; 1408 QString buf;
1409 QString comment; 1409 QString comment;
1410 char * xpm[256]; //couldnt be larger than that... could it? 1410 char * xpm[256]; //couldnt be larger than that... could it?
1411 QImage *xpm2pix = 0; 1411 QImage *xpm2pix = 0;
1412 1412
1413 buf = t.readLine(); 1413 buf = t.readLine();
1414 while (buf) { 1414 while (buf) {
1415 1415
1416 // get rid of comments 1416 // get rid of comments
1417 buf.replace(QRegExp("#.*$", FALSE, FALSE), ""); 1417 buf.replace(QRegExp("#.*$", FALSE, FALSE), "");
1418 1418
1419 // key definition 1419 // key definition
1420 if (buf.contains(QRegExp("^\\d+\\s+[0-1a-fx]+", FALSE, FALSE))) { 1420 if (buf.contains(QRegExp("^\\d+\\s+[0-1a-fx]+", FALSE, FALSE))) {
1421 // no $1 type referencing!!! this implementation of regexp sucks 1421 // no $1 type referencing!!! this implementation of regexp sucks
1422 1422
1423 // dont know of any sscanf() type funcs in Qt lib 1423 // dont know of any sscanf() type funcs in Qt lib
1424 QTextStream tmp (buf, IO_ReadOnly); 1424 QTextStream tmp (buf, IO_ReadOnly);
1425 tmp >> row >> qcode >> unicode >> width >> comment; 1425 tmp >> row >> qcode >> unicode >> width >> comment;
1426 1426
1427 buf = t.readLine(); 1427 buf = t.readLine();
1428 int xpmLineCount = 0; 1428 int xpmLineCount = 0;
1429 xpm2pix = 0; 1429 xpm2pix = 0;
1430 1430
1431 // erase blank space 1431 // erase blank space
1432 while (buf.contains(QRegExp("^\\s*$")) && buf) buf = t.readLine(); 1432 while (buf.contains(QRegExp("^\\s*$")) && buf) buf = t.readLine();
1433 1433