summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/inputmethods.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/core/launcher/inputmethods.cpp b/core/launcher/inputmethods.cpp
index 003dc77..da98e07 100644
--- a/core/launcher/inputmethods.cpp
+++ b/core/launcher/inputmethods.cpp
@@ -20,2 +20,3 @@
+#define QTOPIA_INTERNAL_LANGLIST
#include "inputmethods.h"
@@ -26,2 +27,3 @@
#include <qpe/qlibrary.h>
+#include <qpe/global.h>
@@ -180,7 +182,9 @@ void InputMethods::loadInputMethods()
inputMethodList.append( input );
- QString lang = getenv( "LANG" );
- QTranslator * trans = new QTranslator(qApp);
+
QString type = (*it).left( (*it).find(".") );
+ QStringList langs = Global::languageList();
+ for (QStringList::ConstIterator lit = langs.begin(); lit!=langs.end(); ++lit) {
+ QString lang = *lit;
+ QTranslator * trans = new QTranslator(qApp);
QString tfn = QPEApplication::qpeDir()+"/i18n/"+lang+"/"+type+".qm";
- qDebug("tr for inputmethod: %s", tfn.latin1() );
if ( trans->load( tfn ))
@@ -189,2 +193,3 @@ void InputMethods::loadInputMethods()
delete trans;
+ }
} else {
@@ -209,3 +214,17 @@ void InputMethods::loadInputMethods()
if ( !inputMethodList.isEmpty() ) {
+ Config cfg("qpe");
+ cfg.setGroup("InputMethod");
+ QString curMethod = cfg.readEntry("current","");
+ if(curMethod.isEmpty()) {
method = &inputMethodList[0];
+ } else {
+ int i = 0;
+ QValueList<InputMethod>::Iterator it;
+ for ( it = inputMethodList.begin(); it != inputMethodList.end(); ++it, i++ ) {
+ if((*it).interface->name() == curMethod) {
+ method = &inputMethodList[i];
+// qDebug(curMethod);
+ }
+ }
+ }
kbdButton->setPixmap( *method->interface->icon() );
@@ -251,2 +270,5 @@ void InputMethods::chooseMethod(InputMethod* im)
method = im;
+ Config cfg("qpe");
+ cfg.setGroup("InputMethod");
+ cfg.writeEntry("current", method->interface->name());
kbdButton->setPixmap( *method->interface->icon() );