summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/inputmethods.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/core/launcher/inputmethods.cpp b/core/launcher/inputmethods.cpp
index ac72b02..acd0d59 100644
--- a/core/launcher/inputmethods.cpp
+++ b/core/launcher/inputmethods.cpp
@@ -169,109 +169,105 @@ void InputMethods::loadInputMethods()
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 );
211 input.interface = new PickboardImpl(); 211 input.interface = new PickboardImpl();
212 input.widget = input.interface->inputMethod( 0, inputWidgetStyle ); 212 input.widget = input.interface->inputMethod( 0, inputWidgetStyle );
213 input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) ); 213 input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) );
214 inputMethodList.append( input ); 214 inputMethodList.append( input );
215#endif 215#endif
216 if ( !inputMethodList.isEmpty() ) { 216 if ( !inputMethodList.isEmpty() ) {
217 method = &inputMethodList[0];
217 Config cfg("qpe"); 218 Config cfg("qpe");
218 cfg.setGroup("InputMethod"); 219 cfg.setGroup("InputMethod");
219 QString curMethod = cfg.readEntry("current",""); 220 QString curMethod = cfg.readEntry("current","");
220 if(curMethod.isEmpty()) { 221 int i = 0;
221 method = &inputMethodList[0]; 222 QValueList<InputMethod>::Iterator it;
222 } else { 223 for ( it = inputMethodList.begin(); it != inputMethodList.end(); ++it, i++ ) {
223 int i = 0; 224 if((*it).interface->name() == curMethod) {
224 QValueList<InputMethod>::Iterator it; 225 method = &inputMethodList[i];
225 for ( it = inputMethodList.begin(); it != inputMethodList.end(); ++it, i++ ) {
226 if((*it).interface->name() == curMethod) {
227 method = &inputMethodList[i];
228// qDebug(curMethod);
229 }
230 } 226 }
231 } 227 }
232 kbdButton->setPixmap( *method->interface->icon() ); 228 kbdButton->setPixmap( *method->interface->icon() );
233 } 229 }
234 if ( !inputMethodList.isEmpty() ) 230 if ( !inputMethodList.isEmpty() )
235 kbdButton->show(); 231 kbdButton->show();
236 else 232 else
237 kbdButton->hide(); 233 kbdButton->hide();
238 if ( inputMethodList.count() > 1 ) 234 if ( inputMethodList.count() > 1 )
239 kbdChoice->show(); 235 kbdChoice->show();
240 else 236 else
241 kbdChoice->hide(); 237 kbdChoice->hide();
242} 238}
243 239
244void InputMethods::chooseKbd() 240void InputMethods::chooseKbd()
245{ 241{
246 QPopupMenu pop( this ); 242 QPopupMenu pop( this );
247 243
248 int i = 0; 244 int i = 0;
249 QValueList<InputMethod>::Iterator it; 245 QValueList<InputMethod>::Iterator it;
250 for ( it = inputMethodList.begin(); it != inputMethodList.end(); ++it, i++ ) { 246 for ( it = inputMethodList.begin(); it != inputMethodList.end(); ++it, i++ ) {
251 pop.insertItem( (*it).interface->name(), i ); 247 pop.insertItem( (*it).interface->name(), i );
252 if ( method == &(*it) ) 248 if ( method == &(*it) )
253 pop.setItemChecked( i, TRUE ); 249 pop.setItemChecked( i, TRUE );
254 } 250 }
255 251
256 QPoint pt = mapToGlobal(kbdChoice->geometry().topRight()); 252 QPoint pt = mapToGlobal(kbdChoice->geometry().topRight());
257 QSize s = pop.sizeHint(); 253 QSize s = pop.sizeHint();
258 pt.ry() -= s.height(); 254 pt.ry() -= s.height();
259 pt.rx() -= s.width(); 255 pt.rx() -= s.width();
260 i = pop.exec( pt ); 256 i = pop.exec( pt );
261 if ( i == -1 ) 257 if ( i == -1 )
262 return; 258 return;
263 InputMethod *im = &inputMethodList[i]; 259 InputMethod *im = &inputMethodList[i];
264 chooseMethod(im); 260 chooseMethod(im);
265} 261}
266 262
267void InputMethods::chooseMethod(InputMethod* im) 263void InputMethods::chooseMethod(InputMethod* im)
268{ 264{
269 if ( im != method ) { 265 if ( im != method ) {
270 if ( method && method->widget->isVisible() ) 266 if ( method && method->widget->isVisible() )
271 method->widget->hide(); 267 method->widget->hide();
272 method = im; 268 method = im;
273 Config cfg("qpe"); 269 Config cfg("qpe");
274 cfg.setGroup("InputMethod"); 270 cfg.setGroup("InputMethod");
275 cfg.writeEntry("current", method->interface->name()); 271 cfg.writeEntry("current", method->interface->name());
276 kbdButton->setPixmap( *method->interface->icon() ); 272 kbdButton->setPixmap( *method->interface->icon() );
277 } 273 }