summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/inputmethods.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/core/launcher/inputmethods.cpp b/core/launcher/inputmethods.cpp
index acd0d59..765dfe9 100644
--- a/core/launcher/inputmethods.cpp
+++ b/core/launcher/inputmethods.cpp
@@ -13,198 +13,198 @@
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#define QTOPIA_INTERNAL_LANGLIST 21#define QTOPIA_INTERNAL_LANGLIST
22#include "inputmethods.h" 22#include "inputmethods.h"
23 23
24#include <qpe/config.h> 24#include <qpe/config.h>
25#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
26#include <qpe/inputmethodinterface.h> 26#include <qpe/inputmethodinterface.h>
27#include <qpe/qlibrary.h> 27#include <qpe/qlibrary.h>
28#include <qpe/global.h> 28#include <qpe/global.h>
29 29
30#include <qpopupmenu.h> 30#include <qpopupmenu.h>
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32#include <qtoolbutton.h> 32#include <qtoolbutton.h>
33#include <qwidget.h> 33#include <qwidget.h>
34#include <qlayout.h> 34#include <qlayout.h>
35#include <qtimer.h> 35#include <qtimer.h>
36#include <qdir.h> 36#include <qdir.h>
37#include <stdlib.h> 37#include <stdlib.h>
38#include <qtranslator.h> 38#include <qtranslator.h>
39 39
40#ifdef Q_WS_QWS 40#ifdef Q_WS_QWS
41#include <qwindowsystem_qws.h> 41#include <qwindowsystem_qws.h>
42#include <qwsevent_qws.h> 42#include <qwsevent_qws.h>
43#endif 43#endif
44 44
45#ifdef SINGLE_APP 45#ifdef SINGLE_APP
46#include "handwritingimpl.h" 46#include "handwritingimpl.h"
47#include "keyboardimpl.h" 47#include "keyboardimpl.h"
48#include "pickboardimpl.h" 48#include "pickboardimpl.h"
49#endif 49#endif
50 50
51 51
52/* XPM */ 52/* XPM */
53static const char * tri_xpm[]={ 53static const char * tri_xpm[]={
54"9 9 2 1", 54"9 9 2 1",
55"a c #000000", 55"a c #000000",
56". c None", 56". c None",
57".........", 57".........",
58".........", 58".........",
59".........", 59".........",
60"....a....", 60"....a....",
61"...aaa...", 61"...aaa...",
62"..aaaaa..", 62"..aaaaa..",
63".aaaaaaa.", 63".aaaaaaa.",
64".........", 64".........",
65"........."}; 65"........."};
66 66
67static const int inputWidgetStyle = QWidget::WStyle_Customize | 67static const int inputWidgetStyle = QWidget::WStyle_Customize |
68 QWidget::WStyle_Tool | 68 QWidget::WStyle_Tool |
69 QWidget::WStyle_StaysOnTop | 69 QWidget::WStyle_StaysOnTop |
70 QWidget::WGroupLeader; 70 QWidget::WGroupLeader;
71 71
72InputMethods::InputMethods( QWidget *parent ) : 72InputMethods::InputMethods( QWidget *parent ) :
73 QWidget( parent, "InputMethods", WStyle_Tool | WStyle_Customize ) 73 QWidget( parent, "InputMethods", WStyle_Tool | WStyle_Customize )
74{ 74{
75 method = NULL; 75 method = NULL;
76 76
77 setBackgroundMode ( PaletteBackground ); 77 setBackgroundMode ( PaletteBackground );
78 78
79 QHBoxLayout *hbox = new QHBoxLayout( this ); 79 QHBoxLayout *hbox = new QHBoxLayout( this );
80 80
81 kbdButton = new QToolButton( this ); 81 kbdButton = new QToolButton( this );
82 kbdButton->setFocusPolicy(NoFocus); 82 kbdButton->setFocusPolicy(NoFocus);
83 kbdButton->setToggleButton( TRUE ); 83 kbdButton->setToggleButton( TRUE );
84 kbdButton->setFixedHeight( 17 ); 84 kbdButton->setFixedHeight( 17 );
85 kbdButton->setFixedWidth( 32 ); 85 kbdButton->setFixedWidth( 32 );
86 kbdButton->setAutoRaise( TRUE ); 86 kbdButton->setAutoRaise( TRUE );
87 kbdButton->setUsesBigPixmap( TRUE ); 87 kbdButton->setUsesBigPixmap( TRUE );
88 hbox->addWidget( kbdButton ); 88 hbox->addWidget( kbdButton );
89 connect( kbdButton, SIGNAL(toggled(bool)), this, SLOT(showKbd(bool)) ); 89 connect( kbdButton, SIGNAL(toggled(bool)), this, SLOT(showKbd(bool)) );
90 90
91 kbdChoice = new QToolButton( this ); 91 kbdChoice = new QToolButton( this );
92 kbdChoice->setFocusPolicy(NoFocus); 92 kbdChoice->setFocusPolicy(NoFocus);
93 kbdChoice->setPixmap( QPixmap( (const char **)tri_xpm ) ); 93 kbdChoice->setPixmap( QPixmap( (const char **)tri_xpm ) );
94 kbdChoice->setFixedHeight( 17 ); 94 kbdChoice->setFixedHeight( 17 );
95 kbdChoice->setFixedWidth( 12 ); 95 kbdChoice->setFixedWidth( 12 );
96 kbdChoice->setAutoRaise( TRUE ); 96 kbdChoice->setAutoRaise( TRUE );
97 hbox->addWidget( kbdChoice ); 97 hbox->addWidget( kbdChoice );
98 connect( kbdChoice, SIGNAL(clicked()), this, SLOT(chooseKbd()) ); 98 connect( kbdChoice, SIGNAL(clicked()), this, SLOT(chooseKbd()) );
99 99
100 connect( (QPEApplication*)qApp, SIGNAL(clientMoused()), 100 connect( (QPEApplication*)qApp, SIGNAL(clientMoused()),
101 this, SLOT(resetStates()) ); 101 this, SLOT(resetStates()) );
102 102
103 loadInputMethods(); 103 loadInputMethods();
104} 104}
105 105
106InputMethods::~InputMethods() 106InputMethods::~InputMethods()
107{ 107{
108#ifndef SINGLE_APP 108#ifndef SINGLE_APP
109 QValueList<InputMethod>::Iterator mit; 109 QValueList<InputMethod>::Iterator mit;
110 for ( mit = inputMethodList.begin(); mit != inputMethodList.end(); ++mit ) { 110 for ( mit = inputMethodList.begin(); mit != inputMethodList.end(); ++mit ) {
111 int i = (*mit).interface->release(); 111 (void) (*mit).interface->release();
112 (*mit).library->unload(); 112 (*mit).library->unload();
113 delete (*mit).library; 113 delete (*mit).library;
114 } 114 }
115#endif 115#endif
116} 116}
117 117
118void InputMethods::hideInputMethod() 118void InputMethods::hideInputMethod()
119{ 119{
120 kbdButton->setOn( FALSE ); 120 kbdButton->setOn( FALSE );
121} 121}
122 122
123void InputMethods::showInputMethod() 123void InputMethods::showInputMethod()
124{ 124{
125 kbdButton->setOn( TRUE ); 125 kbdButton->setOn( TRUE );
126} 126}
127 127
128void InputMethods::showInputMethod(const QString& name) 128void InputMethods::showInputMethod(const QString& name)
129{ 129{
130 int i = 0; 130 int i = 0;
131 QValueList<InputMethod>::Iterator it; 131 QValueList<InputMethod>::Iterator it;
132 InputMethod *im = 0; 132 InputMethod *im = 0;
133 for ( it = inputMethodList.begin(); it != inputMethodList.end(); ++it, i++ ) { 133 for ( it = inputMethodList.begin(); it != inputMethodList.end(); ++it, i++ ) {
134 if ( (*it).interface->name() == name ) { 134 if ( (*it).interface->name() == name ) {
135 im = &(*it); 135 im = &(*it);
136 break; 136 break;
137 } 137 }
138 } 138 }
139 if ( im ) 139 if ( im )
140 chooseMethod(im); 140 chooseMethod(im);
141} 141}
142 142
143void InputMethods::resetStates() 143void InputMethods::resetStates()
144{ 144{
145 if ( method ) 145 if ( method )
146 method->interface->resetState(); 146 method->interface->resetState();
147} 147}
148 148
149QRect InputMethods::inputRect() const 149QRect InputMethods::inputRect() const
150{ 150{
151 if ( !method || !method->widget->isVisible() ) 151 if ( !method || !method->widget->isVisible() )
152 return QRect(); 152 return QRect();
153 else 153 else
154 return method->widget->geometry(); 154 return method->widget->geometry();
155} 155}
156 156
157void InputMethods::loadInputMethods() 157void InputMethods::loadInputMethods()
158{ 158{
159#ifndef SINGLE_APP 159#ifndef SINGLE_APP
160 hideInputMethod(); 160 hideInputMethod();
161 method = 0; 161 method = 0;
162 162
163 QValueList<InputMethod>::Iterator mit; 163 QValueList<InputMethod>::Iterator mit;
164 for ( mit = inputMethodList.begin(); mit != inputMethodList.end(); ++mit ) { 164 for ( mit = inputMethodList.begin(); mit != inputMethodList.end(); ++mit ) {
165 (*mit).interface->release(); 165 (*mit).interface->release();
166 (*mit).library->unload(); 166 (*mit).library->unload();
167 delete (*mit).library; 167 delete (*mit).library;
168 } 168 }
169 inputMethodList.clear(); 169 inputMethodList.clear();
170 170
171 QString path = QPEApplication::qpeDir() + "/plugins/inputmethods"; 171 QString path = QPEApplication::qpeDir() + "/plugins/inputmethods";
172 QDir dir( path, "lib*.so" ); 172 QDir dir( path, "lib*.so" );
173 QStringList list = dir.entryList(); 173 QStringList list = dir.entryList();
174 QStringList::Iterator it; 174 QStringList::Iterator it;
175 for ( it = list.begin(); it != list.end(); ++it ) { 175 for ( it = list.begin(); it != list.end(); ++it ) {
176 InputMethodInterface *iface = 0; 176 InputMethodInterface *iface = 0;
177 QLibrary *lib = new QLibrary( path + "/" + *it ); 177 QLibrary *lib = new QLibrary( path + "/" + *it );
178 if ( lib->queryInterface( IID_InputMethod, (QUnknownInterface**)&iface ) == QS_OK ) { 178 if ( lib->queryInterface( IID_InputMethod, (QUnknownInterface**)&iface ) == QS_OK ) {
179 InputMethod input; 179 InputMethod input;
180 input.library = lib; 180 input.library = lib;
181 input.interface = iface; 181 input.interface = iface;
182 input.widget = input.interface->inputMethod( 0, inputWidgetStyle ); 182 input.widget = input.interface->inputMethod( 0, inputWidgetStyle );
183 input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) ); 183 input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) );
184 inputMethodList.append( input ); 184 inputMethodList.append( input );
185 185
186 QString type = (*it).left( (*it).find(".") ); 186 QString type = (*it).left( (*it).find(".") );
187 QStringList langs = Global::languageList(); 187 QStringList langs = Global::languageList();
188 for (QStringList::ConstIterator lit = langs.begin(); lit!=langs.end(); ++lit) { 188 for (QStringList::ConstIterator lit = langs.begin(); lit!=langs.end(); ++lit) {
189 QString lang = *lit; 189 QString lang = *lit;
190 QTranslator * trans = new QTranslator(qApp); 190 QTranslator * trans = new QTranslator(qApp);
191 QString tfn = QPEApplication::qpeDir()+"/i18n/"+lang+"/"+type+".qm"; 191 QString tfn = QPEApplication::qpeDir()+"/i18n/"+lang+"/"+type+".qm";
192 if ( trans->load( tfn )) 192 if ( trans->load( tfn ))
193 qApp->installTranslator( trans ); 193 qApp->installTranslator( trans );
194 else 194 else
195 delete trans; 195 delete trans;
196 } 196 }
197 } else { 197 } else {
198 delete lib; 198 delete lib;
199 } 199 }
200 } 200 }
201#else 201#else
202 InputMethod input; 202 InputMethod input;
203 input.interface = new HandwritingImpl(); 203 input.interface = new HandwritingImpl();
204 input.widget = input.interface->inputMethod( 0, inputWidgetStyle ); 204 input.widget = input.interface->inputMethod( 0, inputWidgetStyle );
205 input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) ); 205 input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) );
206 inputMethodList.append( input ); 206 inputMethodList.append( input );
207 input.interface = new KeyboardImpl(); 207 input.interface = new KeyboardImpl();
208 input.widget = input.interface->inputMethod( 0, inputWidgetStyle ); 208 input.widget = input.interface->inputMethod( 0, inputWidgetStyle );
209 input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) ); 209 input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) );
210 inputMethodList.append( input ); 210 inputMethodList.append( input );