summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/keyboard.cpp7
-rw-r--r--inputmethods/multikey/keyboardimpl.cpp1
2 files changed, 5 insertions, 3 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 1dd8ca1..de3aa52 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -52,97 +52,97 @@ Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
52 // get the default font 52 // get the default font
53 Config *config = new Config( "qpe" ); 53 Config *config = new Config( "qpe" );
54 config->setGroup( "Appearance" ); 54 config->setGroup( "Appearance" );
55 QString familyStr = config->readEntry( "FontFamily", "fixed" ); 55 QString familyStr = config->readEntry( "FontFamily", "fixed" );
56 delete config; 56 delete config;
57 57
58 config = new Config("multikey"); 58 config = new Config("multikey");
59 config->setGroup ("general"); 59 config->setGroup ("general");
60 usePicks = config->readBoolEntry ("usePickboard", 0); // default closed 60 usePicks = config->readBoolEntry ("usePickboard", 0); // default closed
61 useRepeat = config->readBoolEntry ("useRepeat", 1); 61 useRepeat = config->readBoolEntry ("useRepeat", 1);
62 delete config; 62 delete config;
63 63
64 64
65 setFont( QFont( familyStr, 10 ) ); 65 setFont( QFont( familyStr, 10 ) );
66 66
67 picks = new KeyboardPicks( this ); 67 picks = new KeyboardPicks( this );
68 picks->setFont( QFont( familyStr, 10 ) ); 68 picks->setFont( QFont( familyStr, 10 ) );
69 picks->initialise(); 69 picks->initialise();
70 if (usePicks) { 70 if (usePicks) {
71 71
72 QObject::connect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ), 72 QObject::connect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ),
73 this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) ); 73 this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) );
74 74
75 } else picks->hide(); 75 } else picks->hide();
76 76
77 loadKeyboardColors(); 77 loadKeyboardColors();
78 78
79 keys = new Keys(); 79 keys = new Keys();
80 80
81 repeatTimer = new QTimer( this ); 81 repeatTimer = new QTimer( this );
82 connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) ); 82 connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) );
83 83
84} 84}
85 85
86Keyboard::~Keyboard() { 86Keyboard::~Keyboard() {
87 87
88 if ( configdlg ) { 88 if ( configdlg ) {
89 delete (ConfigDlg *) configdlg; 89 delete (ConfigDlg *) configdlg;
90 configdlg = 0; 90 configdlg = 0;
91 } 91 }
92 92
93} 93}
94 94
95/* Keyboard::resizeEvent {{{1 */ 95/* Keyboard::resizeEvent {{{1 */
96void Keyboard::resizeEvent(QResizeEvent*) 96void Keyboard::resizeEvent(QResizeEvent*)
97{ 97{
98 int ph = picks->sizeHint().height(); 98 int ph = picks->sizeHint().height();
99 picks->setGeometry( 0, 0, width(), ph ); 99 picks->setGeometry( 0, 0, width(), ph );
100 keyHeight = (height()-(usePicks ? ph : 0))/keys->rows(); 100 keyHeight = (height()-(usePicks ? ph : 0))/(keys->rows()?keys->rows():1);
101 101
102 int nk; // number of keys? 102 int nk; // number of keys?
103 if ( useLargeKeys ) { 103 if ( useLargeKeys ) {
104 nk = 15; 104 nk = 15;
105 } else { 105 } else {
106 nk = 19; 106 nk = 19;
107 } 107 }
108 defaultKeyWidth = (width()/nk)/2; 108 defaultKeyWidth = (width()/nk)/2;
109 xoffs = (width()-defaultKeyWidth*nk)/2; // empty key spaces? 109 xoffs = (width()-defaultKeyWidth*nk)/2; // empty key spaces?
110 110
111} 111}
112 112
113/* KeyboardPicks::initialize {{{1 */ 113/* KeyboardPicks::initialize {{{1 */
114void KeyboardPicks::initialise() 114void KeyboardPicks::initialise()
115{ 115{
116 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); 116 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
117 mode = 0; 117 mode = 0;
118 dc = new KeyboardConfig(this); 118 dc = new KeyboardConfig(this);
119 configs.append(dc); 119 configs.append(dc);
120} 120}
121 121
122/* KeyboardPicks::sizeHint {{{1 */ 122/* KeyboardPicks::sizeHint {{{1 */
123QSize KeyboardPicks::sizeHint() const 123QSize KeyboardPicks::sizeHint() const
124{ 124{
125 return QSize(240,fontMetrics().lineSpacing()); 125 return QSize(240,fontMetrics().lineSpacing());
126} 126}
127 127
128 128
129/* KeyboardConfig::generateText {{{1 */ 129/* KeyboardConfig::generateText {{{1 */
130void KeyboardConfig::generateText(const QString &s) 130void KeyboardConfig::generateText(const QString &s)
131{ 131{
132#if defined(Q_WS_QWS) || defined(_WS_QWS_) 132#if defined(Q_WS_QWS) || defined(_WS_QWS_)
133 for (int i=0; i<(int)backspaces; i++) { 133 for (int i=0; i<(int)backspaces; i++) {
134 parent->emitKey( 0, Qt::Key_Backspace, 0, true, false ); 134 parent->emitKey( 0, Qt::Key_Backspace, 0, true, false );
135 parent->emitKey( 0, Qt::Key_Backspace, 0, false, false ); 135 parent->emitKey( 0, Qt::Key_Backspace, 0, false, false );
136 } 136 }
137 for (int i=0; i<(int)s.length(); i++) { 137 for (int i=0; i<(int)s.length(); i++) {
138 parent->emitKey( s[i].unicode(), 0, 0, true, false ); 138 parent->emitKey( s[i].unicode(), 0, 0, true, false );
139 parent->emitKey( s[i].unicode(), 0, 0, false, false ); 139 parent->emitKey( s[i].unicode(), 0, 0, false, false );
140 } 140 }
141 parent->emitKey( 0, Qt::Key_Space, 0, true, false ); 141 parent->emitKey( 0, Qt::Key_Space, 0, true, false );
142 parent->emitKey( 0, Qt::Key_Space, 0, false, false ); 142 parent->emitKey( 0, Qt::Key_Space, 0, false, false );
143 backspaces = 0; 143 backspaces = 0;
144#endif 144#endif
145} 145}
146 146
147 147
148 148
@@ -1276,97 +1276,100 @@ ushort Keyboard::constoe(const ushort c) {
1276 1276
1277 } else { //echar to schar 1277 } else { //echar to schar
1278 1278
1279 switch (c) { 1279 switch (c) {
1280 case 0x11a8: return 0x1100; 1280 case 0x11a8: return 0x1100;
1281 case 0x11a9: return 0x1101; 1281 case 0x11a9: return 0x1101;
1282 case 0x11ab: return 0x1102; 1282 case 0x11ab: return 0x1102;
1283 case 0x11ae: return 0x1103; 1283 case 0x11ae: return 0x1103;
1284 case 0x11af: return 0x1105; 1284 case 0x11af: return 0x1105;
1285 case 0x11b7: return 0x1106; 1285 case 0x11b7: return 0x1106;
1286 case 0x11b8: return 0x1107; 1286 case 0x11b8: return 0x1107;
1287 case 0x11ba: return 0x1109; 1287 case 0x11ba: return 0x1109;
1288 case 0x11bb: return 0x110a; 1288 case 0x11bb: return 0x110a;
1289 case 0x11bc: return 0x110b; 1289 case 0x11bc: return 0x110b;
1290 case 0x11bd: return 0x110c; 1290 case 0x11bd: return 0x110c;
1291 case 0x11be: return 0x110e; 1291 case 0x11be: return 0x110e;
1292 case 0x11bf: return 0x110f; 1292 case 0x11bf: return 0x110f;
1293 case 0x11c0: return 0x1110; 1293 case 0x11c0: return 0x1110;
1294 case 0x11c1: return 0x1111; 1294 case 0x11c1: return 0x1111;
1295 case 0x11c2: return 0x1112; 1295 case 0x11c2: return 0x1112;
1296 default: return 0; 1296 default: return 0;
1297 1297
1298 } 1298 }
1299 1299
1300 } 1300 }
1301} 1301}
1302 1302
1303 1303
1304// Keys::Keys {{{1 1304// Keys::Keys {{{1
1305 1305
1306Keys::Keys() { 1306Keys::Keys() {
1307 1307
1308 Config *config = new Config ("multikey"); 1308 Config *config = new Config ("multikey");
1309 config->setGroup( "keymaps" ); 1309 config->setGroup( "keymaps" );
1310 QString map = config->readEntry( "current" ); 1310 QString map = config->readEntry( "current" );
1311 delete config; 1311 delete config;
1312 1312
1313 if (map.isNull() || !(QFile(map).exists())) { 1313 if (map.isNull() || !(QFile(map).exists())) {
1314 1314
1315 Config *config = new Config("locale"); 1315 Config *config = new Config("locale");
1316 config->setGroup( "Language" ); 1316 config->setGroup( "Language" );
1317 QString l = config->readEntry( "Language" , "en" ); 1317 QString l = config->readEntry( "Language" , "en" );
1318 delete config; 1318 delete config;
1319 1319
1320 map = QPEApplication::qpeDir() + "/share/multikey/" 1320 map = QPEApplication::qpeDir() + "/share/multikey/"
1321 + l + ".keymap"; 1321 + l + ".keymap";
1322 1322
1323 } 1323 }
1324 1324 if (map.isNull() || !(QFile(map).exists())) {
1325 map = QPEApplication::qpeDir() + "/share/multikey/en.keymap";
1326 }
1327
1325 setKeysFromFile(map); 1328 setKeysFromFile(map);
1326} 1329}
1327 1330
1328Keys::Keys(const char * filename) { 1331Keys::Keys(const char * filename) {
1329 1332
1330 setKeysFromFile(filename); 1333 setKeysFromFile(filename);
1331} 1334}
1332 1335
1333// Keys::setKeysFromFile {{{2 1336// Keys::setKeysFromFile {{{2
1334void Keys::setKeysFromFile(const char * filename) { 1337void Keys::setKeysFromFile(const char * filename) {
1335 1338
1336 QFile f(filename); 1339 QFile f(filename);
1337 1340
1338 if (f.open(IO_ReadOnly)) { 1341 if (f.open(IO_ReadOnly)) {
1339 1342
1340 QTextStream t(&f); 1343 QTextStream t(&f);
1341 int row; 1344 int row;
1342 int qcode; 1345 int qcode;
1343 ushort unicode; 1346 ushort unicode;
1344 int width; 1347 int width;
1345 QString buf; 1348 QString buf;
1346 QString comment; 1349 QString comment;
1347 char * xpm[256]; //couldnt be larger than that... could it? 1350 char * xpm[256]; //couldnt be larger than that... could it?
1348 QImage *xpm2pix = 0; 1351 QImage *xpm2pix = 0;
1349 1352
1350 buf = t.readLine(); 1353 buf = t.readLine();
1351 while (buf) { 1354 while (buf) {
1352 1355
1353 // get rid of comments 1356 // get rid of comments
1354 buf.replace(QRegExp("#.*$", FALSE, FALSE), ""); 1357 buf.replace(QRegExp("#.*$", FALSE, FALSE), "");
1355 1358
1356 // key definition 1359 // key definition
1357 if (buf.contains(QRegExp("^\\d+\\s+[0-1a-fx]+", FALSE, FALSE))) { 1360 if (buf.contains(QRegExp("^\\d+\\s+[0-1a-fx]+", FALSE, FALSE))) {
1358 // no $1 type referencing!!! this implementation of regexp sucks 1361 // no $1 type referencing!!! this implementation of regexp sucks
1359 1362
1360 // dont know of any sscanf() type funcs in Qt lib 1363 // dont know of any sscanf() type funcs in Qt lib
1361 QTextStream tmp (buf, IO_ReadOnly); 1364 QTextStream tmp (buf, IO_ReadOnly);
1362 tmp >> row >> qcode >> unicode >> width >> comment; 1365 tmp >> row >> qcode >> unicode >> width >> comment;
1363 1366
1364 buf = t.readLine(); 1367 buf = t.readLine();
1365 int xpmLineCount = 0; 1368 int xpmLineCount = 0;
1366 xpm2pix = 0; 1369 xpm2pix = 0;
1367 1370
1368 // erase blank space 1371 // erase blank space
1369 while (buf.contains(QRegExp("^\\s*$")) && buf) buf = t.readLine(); 1372 while (buf.contains(QRegExp("^\\s*$")) && buf) buf = t.readLine();
1370 1373
1371 while (buf.contains(QRegExp("^\\s*\".*\""))) { 1374 while (buf.contains(QRegExp("^\\s*\".*\""))) {
1372 1375
diff --git a/inputmethods/multikey/keyboardimpl.cpp b/inputmethods/multikey/keyboardimpl.cpp
index 2bcb0fa..cebd43d 100644
--- a/inputmethods/multikey/keyboardimpl.cpp
+++ b/inputmethods/multikey/keyboardimpl.cpp
@@ -33,76 +33,75 @@ static const char * kb_xpm[] = {
33" .+++.+++.+++.+++.+++.++++. ", 33" .+++.+++.+++.+++.+++.++++. ",
34" .+@@.+@@.+@@.+@@.+@@.+@@@. ", 34" .+@@.+@@.+@@.+@@.+@@.+@@@. ",
35" .......................... ", 35" .......................... ",
36" .+++++.+++.+++.+++.++++++. ", 36" .+++++.+++.+++.+++.++++++. ",
37" .+@@@@.+@@.+@@.+@@.+@@@@@. ", 37" .+@@@@.+@@.+@@.+@@.+@@@@@. ",
38" .......................... ", 38" .......................... ",
39" .++++++.+++.+++.+++.+++++. ", 39" .++++++.+++.+++.+++.+++++. ",
40" .+@@@@@.+@@.+@@.+@@.+@@@@. ", 40" .+@@@@@.+@@.+@@.+@@.+@@@@. ",
41" .......................... ", 41" .......................... ",
42" .++++.++++++++++++++.++++. ", 42" .++++.++++++++++++++.++++. ",
43" .+@@@.+@@@@@@@@@@@@@.+@@@. ", 43" .+@@@.+@@@@@@@@@@@@@.+@@@. ",
44" .......................... "}; 44" .......................... "};
45 45
46 46
47KeyboardImpl::KeyboardImpl() 47KeyboardImpl::KeyboardImpl()
48 : input(0), icn(0), ref(0) 48 : input(0), icn(0), ref(0)
49{ 49{
50} 50}
51 51
52KeyboardImpl::~KeyboardImpl() 52KeyboardImpl::~KeyboardImpl()
53{ 53{
54 delete input; 54 delete input;
55 delete icn; 55 delete icn;
56} 56}
57 57
58QWidget *KeyboardImpl::inputMethod( QWidget *parent, Qt::WFlags f ) 58QWidget *KeyboardImpl::inputMethod( QWidget *parent, Qt::WFlags f )
59{ 59{
60 if ( !input ) 60 if ( !input )
61 input = new Keyboard( parent, "Keyboard", f ); 61 input = new Keyboard( parent, "Keyboard", f );
62 return input; 62 return input;
63} 63}
64 64
65void KeyboardImpl::resetState() 65void KeyboardImpl::resetState()
66{ 66{
67 if ( input ) 67 if ( input )
68 input->resetState(); 68 input->resetState();
69} 69}
70 70
71QPixmap *KeyboardImpl::icon() 71QPixmap *KeyboardImpl::icon()
72{ 72{
73 if ( !icn ) 73 if ( !icn )
74 icn = new QPixmap( (const char **)kb_xpm ); 74 icn = new QPixmap( (const char **)kb_xpm );
75 return icn; 75 return icn;
76} 76}
77 77
78QString KeyboardImpl::name() 78QString KeyboardImpl::name()
79{ 79{
80 return qApp->translate( "InputMethods", "Multikey" ); 80 return qApp->translate( "InputMethods", "Multikey" );
81// return qApp->translate( "InputMethods", "Opti" );
82} 81}
83 82
84void KeyboardImpl::onKeyPress( QObject *receiver, const char *slot ) 83void KeyboardImpl::onKeyPress( QObject *receiver, const char *slot )
85{ 84{
86 if ( input ) 85 if ( input )
87 QObject::connect( input, SIGNAL(key(ushort,ushort,ushort,bool,bool)), receiver, slot ); 86 QObject::connect( input, SIGNAL(key(ushort,ushort,ushort,bool,bool)), receiver, slot );
88} 87}
89 88
90#ifndef QT_NO_COMPONENT 89#ifndef QT_NO_COMPONENT
91QRESULT KeyboardImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 90QRESULT KeyboardImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
92{ 91{
93 *iface = 0; 92 *iface = 0;
94 if ( uuid == IID_QUnknown ) 93 if ( uuid == IID_QUnknown )
95 *iface = this; 94 *iface = this;
96 else if ( uuid == IID_InputMethod ) 95 else if ( uuid == IID_InputMethod )
97 *iface = this; 96 *iface = this;
98 97
99 if ( *iface ) 98 if ( *iface )
100 (*iface)->addRef(); 99 (*iface)->addRef();
101 return QS_OK; 100 return QS_OK;
102} 101}
103 102
104Q_EXPORT_INTERFACE() 103Q_EXPORT_INTERFACE()
105{ 104{
106 Q_CREATE_INSTANCE( KeyboardImpl ) 105 Q_CREATE_INSTANCE( KeyboardImpl )
107} 106}
108#endif 107#endif