summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/multikeyapplet/multikey.cpp22
-rw-r--r--core/applets/multikeyapplet/multikey.h2
-rw-r--r--inputmethods/multikey/configdlg.cpp161
-rw-r--r--inputmethods/multikey/configdlg.h12
-rw-r--r--share/multikey/ru.keymap255
5 files changed, 359 insertions, 93 deletions
diff --git a/core/applets/multikeyapplet/multikey.cpp b/core/applets/multikeyapplet/multikey.cpp
index 0a056b0..f1227ef 100644
--- a/core/applets/multikeyapplet/multikey.cpp
+++ b/core/applets/multikeyapplet/multikey.cpp
@@ -24,7 +24,7 @@
24#include <qfileinfo.h> 24#include <qfileinfo.h>
25#include <qcopchannel_qws.h> 25#include <qcopchannel_qws.h>
26 26
27Multikey::Multikey( QWidget *parent ) : QLabel( parent ), current("EN") 27Multikey::Multikey(QWidget *parent) : QLabel(parent), popupMenu(this), current("EN")
28{ 28{
29 QCopChannel* swChannel = new QCopChannel("MultiKey/Switcher", this); 29 QCopChannel* swChannel = new QCopChannel("MultiKey/Switcher", this);
30 connect( swChannel, SIGNAL(received(const QCString &, const QByteArray &)), 30 connect( swChannel, SIGNAL(received(const QCString &, const QByteArray &)),
@@ -34,13 +34,27 @@ Multikey::Multikey( QWidget *parent ) : QLabel( parent ), current("EN")
34 lang = 0; 34 lang = 0;
35 QCopEnvelope e("MultiKey/Keyboard", "getmultikey()"); 35 QCopEnvelope e("MultiKey/Keyboard", "getmultikey()");
36 setText("EN"); 36 setText("EN");
37 popupMenu.insertItem("EN", -1);
37 show(); 38 show();
38} 39}
39 40
40void Multikey::mousePressEvent( QMouseEvent * ) 41void Multikey::mousePressEvent(QMouseEvent *ev)
41{ 42{
43 if (ev->button() == RightButton) {
44
45 QPoint p = mapToGlobal(QPoint(0, 0));
46 QSize s = popupMenu.sizeHint();
47 int opt = popupMenu.exec(QPoint(p.x() + (width() / 2) - (s.width() / 2),
48 p.y() - s.height()), 0);
49
50 if (opt == -1)
51 return;
52 lang = opt;
53 } else {
54 lang = lang < sw_maps.count()-1 ? lang+1 : 0;
55 }
56
42 QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)"); 57 QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)");
43 lang = lang < sw_maps.count()-1 ? lang+1 : 0;
44 //qDebug("Lang=%d, count=%d, lab=%s", lang, sw_maps.count(), labels[lang].ascii()); 58 //qDebug("Lang=%d, count=%d, lab=%s", lang, sw_maps.count(), labels[lang].ascii());
45 e << sw_maps[lang]; 59 e << sw_maps[lang];
46 setText(labels[lang]); 60 setText(labels[lang]);
@@ -60,6 +74,7 @@ void Multikey::message(const QCString &message, const QByteArray &data)
60 lang = 0; 74 lang = 0;
61 labels.clear(); 75 labels.clear();
62 sw_maps.clear(); 76 sw_maps.clear();
77 popupMenu.clear();
63 78
64 for (uint i = 0; i < sw.count(); ++i) { 79 for (uint i = 0; i < sw.count(); ++i) {
65 QString keymap_map; 80 QString keymap_map;
@@ -90,6 +105,7 @@ void Multikey::message(const QCString &message, const QByteArray &data)
90 } 105 }
91 sw_maps.append(keymap_map); 106 sw_maps.append(keymap_map);
92 labels.append(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace()); 107 labels.append(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace());
108 popupMenu.insertItem(labels[labels.count()-1], labels.count()-1);
93 } else { 109 } else {
94 current = line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace(); 110 current = line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace();
95 } 111 }
diff --git a/core/applets/multikeyapplet/multikey.h b/core/applets/multikeyapplet/multikey.h
index 2cb7b29..b525074 100644
--- a/core/applets/multikeyapplet/multikey.h
+++ b/core/applets/multikeyapplet/multikey.h
@@ -16,6 +16,7 @@
16 16
17#include <qlabel.h> 17#include <qlabel.h>
18#include <qstringlist.h> 18#include <qstringlist.h>
19#include <qpopupmenu.h>
19#include <qcopchannel_qws.h> 20#include <qcopchannel_qws.h>
20 21
21class Multikey : public QLabel 22class Multikey : public QLabel
@@ -31,6 +32,7 @@ protected:
31 void mousePressEvent( QMouseEvent * ); 32 void mousePressEvent( QMouseEvent * );
32 QStringList sw_maps; 33 QStringList sw_maps;
33 QStringList labels; 34 QStringList labels;
35 QPopupMenu popupMenu;
34 QString current; 36 QString current;
35 uint lang; 37 uint lang;
36}; 38};
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index f127d0e..d29109a 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -12,6 +12,7 @@
12#include <qpe/config.h> 12#include <qpe/config.h>
13#include <qpe/resource.h> 13#include <qpe/resource.h>
14 14
15#include <qlayout.h>
15#include <qwidget.h> 16#include <qwidget.h>
16#include <qdialog.h> 17#include <qdialog.h>
17#include <qtabwidget.h> 18#include <qtabwidget.h>
@@ -33,7 +34,7 @@
33#include "keyboard.h" 34#include "keyboard.h"
34 35
35// ConfigDlg::ConfigDlg() {{{1 36// ConfigDlg::ConfigDlg() {{{1
36ConfigDlg::ConfigDlg () : QTabWidget () 37ConfigDlg::ConfigDlg () : QDialog ()
37{ 38{
38 setCaption( tr("Multikey Configuration") ); 39 setCaption( tr("Multikey Configuration") );
39 Config config ("multikey"); 40 Config config ("multikey");
@@ -44,10 +45,13 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
44 * 'general config' tab 45 * 'general config' tab
45 */ 46 */
46 47
47 QVBox *gen_box = new QVBox (this); 48 QVBoxLayout *base_lay = new QVBoxLayout(this);
48 gen_box->setMargin(3); 49
49 addTab(gen_box, tr("General Settings")); 50 QTabWidget *tabs = new QTabWidget(this, "tabs");
50 51
52 QWidget *gen_box = new QWidget(tabs, "gen_tab");
53 QVBoxLayout *gen_lay = new QVBoxLayout(gen_box);
54 gen_lay->setMargin(3);
51 QGroupBox *map_group = new QGroupBox (2, Qt::Vertical, tr("Keymap File"), gen_box); 55 QGroupBox *map_group = new QGroupBox (2, Qt::Vertical, tr("Keymap File"), gen_box);
52 56
53 QHBox *hbox1 = new QHBox(map_group); 57 QHBox *hbox1 = new QHBox(map_group);
@@ -129,7 +133,6 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
129 } 133 }
130 134
131 // have to "+1" because the "current language" listItem... remember? 135 // have to "+1" because the "current language" listItem... remember?
132
133 connect(keymaps, SIGNAL(highlighted(int)), SLOT(setMap(int))); 136 connect(keymaps, SIGNAL(highlighted(int)), SLOT(setMap(int)));
134 137
135 QGrid *add_remove_grid = new QGrid(2, map_group); 138 QGrid *add_remove_grid = new QGrid(2, map_group);
@@ -142,10 +145,12 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
142 145
143 remove_button = new QPushButton(tr("Remove"), add_remove_grid); 146 remove_button = new QPushButton(tr("Remove"), add_remove_grid);
144 remove_button->setFlat(TRUE); 147 remove_button->setFlat(TRUE);
145 if (default_maps.find(QFileInfo(current_map).fileName()) != default_maps.end()) 148 if (keymaps->currentItem() == 0 || default_maps.find(QFileInfo(current_map).fileName()) != default_maps.end())
146 remove_button->setDisabled(true); 149 remove_button->setDisabled(true);
147 connect(remove_button, SIGNAL(clicked()), SLOT(removeMap())); 150 connect(remove_button, SIGNAL(clicked()), SLOT(removeMap()));
148 151
152 gen_lay->addWidget(map_group);
153
149 // make a box that will contain the buttons on the bottom 154 // make a box that will contain the buttons on the bottom
150 QGrid *other_grid = new QGrid(2, gen_box); 155 QGrid *other_grid = new QGrid(2, gen_box);
151 pick_button = new QCheckBox(tr("Pickboard"), other_grid); 156 pick_button = new QCheckBox(tr("Pickboard"), other_grid);
@@ -157,9 +162,6 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
157 pick_button->setChecked(true); 162 pick_button->setChecked(true);
158 } 163 }
159 164
160 // by connecting it after checking it, the signal isn't emmited
161 connect (pick_button, SIGNAL(clicked()), this, SLOT(pickTog()));
162
163 repeat_button = new QCheckBox(tr("Key Repeat"), other_grid); 165 repeat_button = new QCheckBox(tr("Key Repeat"), other_grid);
164 bool repeat_on = config.readBoolEntry ("useRepeat", TRUE); 166 bool repeat_on = config.readBoolEntry ("useRepeat", TRUE);
165 167
@@ -167,24 +169,30 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
167 169
168 repeat_button->setChecked(true); 170 repeat_button->setChecked(true);
169 } 171 }
170 connect (repeat_button, SIGNAL(clicked()), this, SLOT(repeatTog())); 172
173 gen_lay->addWidget(other_grid);
174 tabs->addTab(gen_box, tr("General Settings"));
171 175
172 /* 176 /*
173 * 'color' tab 177 * 'color' tab
174 */ 178 */
175 179
176 QGrid *color_box = new QGrid(2, this); 180 QWidget *color_box = new QWidget(tabs, "color_tab");
177 color_box->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); 181
178 color_box->setMargin(3); 182 QGridLayout *color_lay = new QGridLayout(color_box);
179 color_box->setSpacing(3); 183 QGrid *color_grid = new QGrid(2, color_box);
180 addTab(color_box, tr("Colors")); 184 color_lay->setAlignment(Qt::AlignTop);
185 color_grid->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
186 color_grid->layout()->setAlignment(Qt::AlignTop);
187 color_grid->setMargin(3);
188 color_grid->setSpacing(3);
181 189
182 QLabel *label; 190 QLabel *label;
183 QStringList color; 191 QStringList color;
184 config.setGroup("colors"); 192 config.setGroup("colors");
185 193
186 label = new QLabel(tr("Key Color"), color_box); 194 label = new QLabel(tr("Key Color"), color_grid);
187 keycolor_button = new QPushButton(color_box); 195 keycolor_button = new QPushButton(color_grid);
188 connect(keycolor_button, SIGNAL(clicked()), SLOT(keyColorClicked())); 196 connect(keycolor_button, SIGNAL(clicked()), SLOT(keyColorClicked()));
189 keycolor_button->setFlat(TRUE); 197 keycolor_button->setFlat(TRUE);
190 color = config.readListEntry("keycolor", QChar(',')); 198 color = config.readListEntry("keycolor", QChar(','));
@@ -200,35 +208,38 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
200 keycolor_button->setPalette(QPalette(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))); 208 keycolor_button->setPalette(QPalette(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())));
201 209
202 210
203 label = new QLabel(tr("Key Pressed Color"), color_box); 211 label = new QLabel(tr("Key Pressed Color"), color_grid);
204 keycolor_pressed_button = new QPushButton(color_box); 212 keycolor_pressed_button = new QPushButton(color_grid);
205 connect(keycolor_pressed_button, SIGNAL(clicked()), SLOT(keyColorPressedClicked())); 213 connect(keycolor_pressed_button, SIGNAL(clicked()), SLOT(keyColorPressedClicked()));
206 keycolor_pressed_button->setFlat(TRUE); 214 keycolor_pressed_button->setFlat(TRUE);
207 color = config.readListEntry("keycolor_pressed", QChar(',')); 215 color = config.readListEntry("keycolor_pressed", QChar(','));
208 keycolor_pressed_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); 216 keycolor_pressed_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))));
209 217
210 label = new QLabel(tr("Line Color"), color_box); 218 label = new QLabel(tr("Line Color"), color_grid);
211 keycolor_lines_button = new QPushButton(color_box); 219 keycolor_lines_button = new QPushButton(color_grid);
212 connect(keycolor_lines_button, SIGNAL(clicked()), SLOT(keyColorLinesClicked())); 220 connect(keycolor_lines_button, SIGNAL(clicked()), SLOT(keyColorLinesClicked()));
213 keycolor_lines_button->setFlat(TRUE); 221 keycolor_lines_button->setFlat(TRUE);
214 color = config.readListEntry("keycolor_lines", QChar(',')); 222 color = config.readListEntry("keycolor_lines", QChar(','));
215 keycolor_lines_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); 223 keycolor_lines_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))));
216 224
217 225
218 label = new QLabel(tr("Text Color"), color_box); 226 label = new QLabel(tr("Text Color"), color_grid);
219 textcolor_button = new QPushButton(color_box); 227 textcolor_button = new QPushButton(color_grid);
220 connect(textcolor_button, SIGNAL(clicked()), SLOT(textColorClicked())); 228 connect(textcolor_button, SIGNAL(clicked()), SLOT(textColorClicked()));
221 textcolor_button->setFlat(TRUE); 229 textcolor_button->setFlat(TRUE);
222 color = config.readListEntry("textcolor", QChar(',')); 230 color = config.readListEntry("textcolor", QChar(','));
223 textcolor_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); 231 textcolor_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))));
224 232
225 label = new QLabel("", color_box); // a spacer so the above buttons dont expand 233 label = new QLabel("", color_grid); // a spacer so the above buttons dont expand
226 label->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); 234 label->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
227} 235 /* FIXME: hacked spacer height */
236 QSpacerItem *spacer = new QSpacerItem(0, 300, QSizePolicy::Expanding, QSizePolicy::Maximum);
228 237
229ConfigDlg::~ConfigDlg() 238 color_lay->addWidget(color_grid, 0, 0);
230{ 239 color_lay->addItem(spacer);
231 emit reloadSw(); 240
241 tabs->addTab(color_box, tr("Colors"));
242 base_lay->addWidget(tabs);
232} 243}
233 244
234QStringList ConfigDlg::loadSw() 245QStringList ConfigDlg::loadSw()
@@ -248,7 +259,7 @@ QStringList ConfigDlg::loadSw()
248 else 259 else
249 { 260 {
250 /* Clear non existents entries */ 261 /* Clear non existents entries */
251 QStringList s_copy = s_maps; 262 QStringList s_copy(s_maps);
252 for (uint i = 0; i < s_copy.count(); ++i) { 263 for (uint i = 0; i < s_copy.count(); ++i) {
253 if (d_maps.find(s_copy[i]) == d_maps.end() 264 if (d_maps.find(s_copy[i]) == d_maps.end()
254 && c_maps.find(s_copy[i]) == c_maps.end()) { 265 && c_maps.find(s_copy[i]) == c_maps.end()) {
@@ -272,6 +283,44 @@ QStringList ConfigDlg::loadSw()
272 return s_maps; 283 return s_maps;
273} 284}
274 285
286void ConfigDlg::accept()
287{
288 /* Writing all stuffs to config */
289 Config *config = new Config("multikey");
290 config->setGroup("general");
291 config->writeEntry("usePickboard", pick_button->isChecked()); // default closed
292 config->writeEntry("useRepeat", repeat_button->isChecked()); // default closed
293
294 config->setGroup("keymaps");
295 config->writeEntry("sw", sw_maps, QChar('|'));
296 config->writeEntry("maps", custom_maps, QChar('|'));
297 delete config;
298
299 int index = keymaps->currentItem();
300 if (index == 0) {
301
302 remove_button->setDisabled(true);
303 emit setMapToDefault();
304 }
305 else if (default_maps.find(sw_maps[index-1]) != default_maps.end()) {
306
307 remove_button->setDisabled(true);
308 emit setMapToFile(QPEApplication::qpeDir() + "share/multikey/" + sw_maps[index - 1]);
309
310 } else {
311
312 remove_button->setEnabled(true);
313 emit setMapToFile(sw_maps[index - 1]);
314 }
315
316 emit pickboardToggled(pick_button->isChecked());
317 emit repeatToggled(repeat_button->isChecked());
318 emit reloadSw();
319
320 QDialog::accept();
321 emit configDlgClosed();
322}
323
275void ConfigDlg::moveSelectedUp() 324void ConfigDlg::moveSelectedUp()
276{ 325{
277 int i = keymaps->currentItem(); 326 int i = keymaps->currentItem();
@@ -285,10 +334,6 @@ void ConfigDlg::moveSelectedUp()
285 keymaps->removeItem(i); 334 keymaps->removeItem(i);
286 keymaps->insertItem(item, i-1); 335 keymaps->insertItem(item, i-1);
287 keymaps->setCurrentItem(i-1); 336 keymaps->setCurrentItem(i-1);
288
289 Config config("multikey");
290 config.setGroup("keymaps");
291 config.writeEntry("sw", sw_maps, QChar('|'));
292 } 337 }
293} 338}
294 339
@@ -305,62 +350,24 @@ void ConfigDlg::moveSelectedDown()
305 keymaps->removeItem(i); 350 keymaps->removeItem(i);
306 keymaps->insertItem(item, i+1); 351 keymaps->insertItem(item, i+1);
307 keymaps->setCurrentItem(i+1); 352 keymaps->setCurrentItem(i+1);
308
309 Config config("multikey");
310 config.setGroup("keymaps");
311 config.writeEntry("sw", sw_maps, QChar('|'));
312 } 353 }
313} 354}
314 355
315void ConfigDlg::pickTog() {
316
317 Config config ("multikey");
318 config.setGroup ("general");
319 config.writeEntry ("usePickboard", pick_button->isChecked()); // default closed
320
321 emit pickboardToggled(pick_button->isChecked());
322}
323
324void ConfigDlg::repeatTog() {
325
326 Config config ("multikey");
327 config.setGroup ("general");
328 config.writeEntry ("useRepeat", repeat_button->isChecked()); // default closed
329
330 emit repeatToggled(repeat_button->isChecked());
331}
332
333void ConfigDlg::closeEvent(QCloseEvent *) { 356void ConfigDlg::closeEvent(QCloseEvent *) {
334 357
335 // tell the parent it was closed, so delete me 358 // tell the parent it was closed, so delete me
336 emit configDlgClosed(); 359 emit configDlgClosed();
337} 360}
338 361
339// ConfigDlg::setMap {{{1
340
341/*
342 * the index is kinda screwy, because in the config file, index 0 is just the
343 * first element in the QStringList, but here it's the "Current Language"
344 * listItem. therefor you have to minus one to the index before you access it.
345 *
346 */
347
348void ConfigDlg::setMap(int index) { 362void ConfigDlg::setMap(int index) {
349 363
350 if (index == 0) { 364 if (index == 0) {
351
352 remove_button->setDisabled(true); 365 remove_button->setDisabled(true);
353 emit setMapToDefault();
354 } 366 }
355 else if (default_maps.find(sw_maps[index-1]) != default_maps.end()) { 367 else if (default_maps.find(sw_maps[index-1]) != default_maps.end()) {
356
357 remove_button->setDisabled(true); 368 remove_button->setDisabled(true);
358 emit setMapToFile(QPEApplication::qpeDir() + "share/multikey/" + sw_maps[index - 1]);
359
360 } else { 369 } else {
361
362 remove_button->setEnabled(true); 370 remove_button->setEnabled(true);
363 emit setMapToFile(sw_maps[index - 1]);
364 } 371 }
365} 372}
366 373
@@ -401,12 +408,6 @@ void ConfigDlg::addMap() {
401 } 408 }
402 409
403 keymaps->setSelected(keymaps->count() - 1, true); 410 keymaps->setSelected(keymaps->count() - 1, true);
404
405
406 config.writeEntry("maps", maps, QChar('|'));
407 config.writeEntry("sw", sw_maps, QChar('|'));
408 config.writeEntry("current", map);
409
410} 411}
411 412
412// ConfigDlg::removeMap() {{{1 413// ConfigDlg::removeMap() {{{1
@@ -419,12 +420,6 @@ void ConfigDlg::removeMap() {
419 420
420 custom_maps.remove(sw_maps[keymaps->currentItem()]); 421 custom_maps.remove(sw_maps[keymaps->currentItem()]);
421 sw_maps.remove(sw_maps.at(keymaps->currentItem())); 422 sw_maps.remove(sw_maps.at(keymaps->currentItem()));
422
423 // write the changes
424 Config config ("multikey");
425 config.setGroup("keymaps");
426 config.writeEntry("maps", custom_maps, QChar('|'));
427 config.writeEntry("sw", sw_maps, QChar('|'));
428} 423}
429 424
430/* ConfigDlg::slots for the color buttons {{{1 425/* ConfigDlg::slots for the color buttons {{{1
diff --git a/inputmethods/multikey/configdlg.h b/inputmethods/multikey/configdlg.h
index ea157c5..91ae429 100644
--- a/inputmethods/multikey/configdlg.h
+++ b/inputmethods/multikey/configdlg.h
@@ -1,5 +1,5 @@
1#include <qpe/qpeapplication.h> 1#include <qpe/qpeapplication.h>
2#include <qtabwidget.h> 2#include <qdialog.h>
3#include <qcheckbox.h> 3#include <qcheckbox.h>
4#include <qlistbox.h> 4#include <qlistbox.h>
5#include <qpushbutton.h> 5#include <qpushbutton.h>
@@ -7,13 +7,12 @@
7#ifndef CONFIGDLG_H 7#ifndef CONFIGDLG_H
8#define CONFIGDLG_H 8#define CONFIGDLG_H
9 9
10class ConfigDlg : public QTabWidget 10class ConfigDlg : public QDialog
11{ 11{
12 Q_OBJECT 12 Q_OBJECT
13 13
14public: 14public:
15 ConfigDlg (); 15 ConfigDlg ();
16 ~ConfigDlg ();
17 static QStringList ConfigDlg::loadSw(); 16 static QStringList ConfigDlg::loadSw();
18 17
19signals: 18signals:
@@ -25,19 +24,19 @@ signals:
25 void configDlgClosed(); 24 void configDlgClosed();
26 void reloadSw(); 25 void reloadSw();
27 26
27protected:
28 virtual void accept();
29
28protected slots: 30protected slots:
29 void moveSelectedUp(); 31 void moveSelectedUp();
30 void moveSelectedDown(); 32 void moveSelectedDown();
31 33
32private slots: 34private slots:
33 void pickTog();
34 void repeatTog();
35 void setMap(int index); 35 void setMap(int index);
36 void addMap(); 36 void addMap();
37 void removeMap(); 37 void removeMap();
38 virtual void closeEvent ( QCloseEvent * ); 38 virtual void closeEvent ( QCloseEvent * );
39 39
40
41 // all those required slots for the color push buttons 40 // all those required slots for the color push buttons
42 void keyColorClicked(); 41 void keyColorClicked();
43 void keyColorPressedClicked(); 42 void keyColorPressedClicked();
@@ -51,7 +50,6 @@ private:
51 QPushButton *add_button; 50 QPushButton *add_button;
52 QPushButton *remove_button; 51 QPushButton *remove_button;
53 52
54
55 QStringList default_maps; // the maps in your share/multikey/ dir 53 QStringList default_maps; // the maps in your share/multikey/ dir
56 QStringList custom_maps; // maps you added with the 'add' button 54 QStringList custom_maps; // maps you added with the 'add' button
57 QStringList sw_maps; // maps, which used in keyboard switch rotation ring 55 QStringList sw_maps; // maps, which used in keyboard switch rotation ring
diff --git a/share/multikey/ru.keymap b/share/multikey/ru.keymap
new file mode 100644
index 0000000..8cda846
--- a/dev/null
+++ b/share/multikey/ru.keymap
@@ -0,0 +1,255 @@
1# Created by Anton Kachalov (mouse@altlinux.ru)
2title = Russian
3sw = RU
4
51 0x1000 0 2 # and you can write whatever you want after the last element
6
7
8 "9 9 2 1"
9 ". c None"
10 "a c #000000"
11 "........."
12 "........."
13 ".aa.aa.aa"
14 ".a..a..a."
15 ".aa.aa.a."
16 ".a...a.a."
17 ".aa.aa.aa"
18 "........."
19 "........."
20
21 1 0 0x0451 2 # £
221 0 0x31 2 # 1
23 1 0 0x32 2# 2
241 0 0x33 2 # 3
251 0 0x34 2 # 4
261 0 0x35 2 # 5
271 0 0x36 2 # 6
281 0 0x37 2 # 7
291 0 0x38 2 # 8
301 0 0x39 2 # 9
31 1 0 0x30 2# 0
32 1 0 0x2d 2# -
33 1 0 0x3d 2# =
341 0x1003 0 2
35
36 "9 9 2 1"
37 ". c None"
38 "a c #000000"
39 "........."
40 "........."
41 "...a....."
42 "..aa....."
43 ".aaaaaaaa"
44 "..aa....."
45 "...a....."
46 "........."
47 "........."
48
49
502 0x1001 0x9 3 # tab char, but why doesnt this work...?
51
52
53 "11 9 2 1"
54 ". c None"
55 "a c #000000"
56 "..........."
57 "..........."
58 ".....a..a.."
59 ".....aa.a.."
60 ".aaaaaaaa.."
61 ".....aa.a.."
62 ".....a..a.."
63 "..........."
64 "..........."
652 0 0x0439 2 # Ê
662 0 0x0446 2 # Ã
672 0 0x0443 2 # Õ
682 0 0x043a 2 # Ë
692 0 0x0435 2 # Å
702 0 0x043d 2 # Î
712 0 0x0433 2 # Ç
722 0 0x0448 2 # Û
732 0 0x0449 2 # Ý
742 0 0x0437 2 # Ú
752 0 0x0445 2 # È
762 0 0x044a 2 # ß
772 0 0x2f 4 # /
78
793 0x1024 0 4
80 "17 7 2 1"
81 " c None"
82 ". c #000000"
83 " "
84 " .. . .. .. "
85 " . . . . . . "
86 " . ... .. . "
87 " . . . . . "
88 " .. . . . .. "
89 " "
903 0 0x0444 2 # Æ
913 0 0x044b 2 # Ù
923 0 0x0432 2 # ×
933 0 0x0430 2 # Á
943 0 0x043f 2 # Ð
953 0 0x0440 2 # Ò
963 0 0x043e 2 # Ï
973 0 0x043b 2 # Ì
983 0 0x0434 2 # Ä
993 0 0x0436 2 # Ö
1003 0 0x044d 2 # Ü
1013 0x1004 0 5 # ENTER
102 "16 9 2 1"
103 ". c None"
104 "a c #000000"
105 "................"
106 "................"
107 "...........a...."
108 "....aa.....a...."
109 "...aa......a...."
110 "..aaaaaaaaaa...."
111 "...aa..........."
112 "....aa.........."
113 "................"
114
1154 0x1020 0 5
116 "21 7 2 1"
117 " c None"
118 ". c #000000"
119 " "
120 " .. . . ... ... ... "
121 " . . . . . . "
122 " . ... . .. . "
123 " . . . . . . "
124 " .. . . ... . . "
125 " "
1264 0 0x044f 2 # Ñ
1274 0 0x0447 2 # Þ
1284 0 0x0441 2 # Ó
1294 0 0x043c 2 # Í
1304 0 0x0438 2 # É
1314 0 0x0442 2 # Ô
1324 0 0x044c 2 # Ø
1334 0 0x0431 2 # Â
1344 0 0x044e 2 # À
1354 0 0x2e 2 # .
1364 0x1020 0 5 # SHIFT
137 "21 7 2 1"
138 " c None"
139 ". c #000000"
140 " "
141 " .. . . ... ... ... "
142 " . . . . . . "
143 " . ... . .. . "
144 " . . . . . . "
145 " .. . . ... . . "
146 " "
147
1485 0x1021 0 3
149 "17 7 2 1"
150 " c None"
151 ". c #000000"
152 " "
153 " .. ... .. . "
154 " . . . . . "
155 " . . .. . "
156 " . . . . . "
157 " .. . . . ... "
158 " "
1595 0x1023 0 3
160 "13 7 2 1"
161 " c None"
162 ". c #000000"
163 " "
164 " . . ... "
165 " . . . . "
166 " ... . . "
167 " . . . . "
168 " . . ... . "
169 " "
1705 0 0x20 16
1715 0x1023 0 3
172 "13 7 2 1"
173 " c None"
174 ". c #000000"
175 " "
176 " . . ... "
177 " . . . . "
178 " ... . . "
179 " . . . . "
180 " . . ... . "
181 " "
1825 0x1021 0 3
183 "17 7 2 1"
184 " c None"
185 ". c #000000"
186 " "
187 " .. ... .. . "
188 " . . . . . "
189 " . . .. . "
190 " . . . . . "
191 " .. . . . ... "
192 " "
1935 0x1030 0 2 #original code is F1, but i'll use it for turning on/off the config dialog
194 "13 7 2 1"
195 " c None"
196 ". c #000000"
197 " "
198 " . "
199 " ... "
200 " ..... "
201 " . "
202 " . "
203 " "
204
205# shift table
2060x0451 0x0401 # £ -> ³
2070x31 0x21 # 1 -> !
2080x32 0x22 # 2 -> "
2090x33 0x4e # 3 -> N
2100x34 0x3b # 4 -> ;
2110x35 0x25 # 5 -> %
2120x36 0x3a # 6 -> :
2130x37 0x3f # 7 -> ?
2140x38 0x2a # 8 -> *
2150x39 0x28 # 9 -> (
2160x30 0x29 # 0 -> )
2170x2d 0x5f # - -> _
2180x3d 0x2b # = -> +
219
2200x0439 0x0419 # Ê -> ê
2210x0446 0x0426 # Ã -> ã
2220x0443 0x0423 # Õ -> õ
2230x043a 0x041a # Ë -> ë
2240x0435 0x0415 # Å -> å
2250x043d 0x041d # Î -> î
2260x0433 0x0413 # Ç -> ç
2270x0448 0x0428 # Û -> û
2280x0449 0x0429 # Ý -> ý
2290x0437 0x0417 # Ú -> ú
2300x0445 0x0425 # È -> è
2310x044a 0x042a # ß -> ÿ
232
2330x0444 0x0424 # Æ -> æ
2340x044b 0x042b # Ù -> ù
2350x0432 0x0412 # × -> ÷
2360x0430 0x0410 # Á -> á
2370x043f 0x041f # Ð -> ð
2380x0440 0x0420 # Ò -> ò
2390x043e 0x041e # Ï -> ï
2400x043b 0x041b # Ì -> ì
2410x0434 0x0414 # Ä -> ä
2420x0436 0x0416 # Ö -> ö
2430x044d 0x042d # Ü -> ü
244
2450x044f 0x042f # Ñ -> ñ
2460x0447 0x0427 # Þ -> þ
2470x0441 0x0421 # Ó -> ó
2480x043c 0x041c # Í -> í
2490x0438 0x0418 # É -> é
2500x0442 0x0422 # Ô -> ô
2510x044c 0x042c # Ø -> ø
2520x0431 0x0411 # Â -> â
2530x044e 0x042e # À -> à
2540x2f 0x7c # / -> |
2550x2e 0x2c # . -> ,