-rw-r--r-- | core/launcher/inputmethods.cpp | 12 |
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 @@ ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #define QTOPIA_INTERNAL_LANGLIST #include "inputmethods.h" #include <qpe/config.h> #include <qpe/qpeapplication.h> #include <qpe/inputmethodinterface.h> #include <qpe/qlibrary.h> #include <qpe/global.h> #include <qpopupmenu.h> #include <qpushbutton.h> #include <qtoolbutton.h> #include <qwidget.h> #include <qlayout.h> #include <qtimer.h> #include <qdir.h> #include <stdlib.h> #include <qtranslator.h> #ifdef Q_WS_QWS #include <qwindowsystem_qws.h> #include <qwsevent_qws.h> #endif #ifdef SINGLE_APP #include "handwritingimpl.h" #include "keyboardimpl.h" #include "pickboardimpl.h" #endif /* XPM */ static const char * tri_xpm[]={ "9 9 2 1", "a c #000000", ". c None", ".........", ".........", ".........", "....a....", "...aaa...", "..aaaaa..", ".aaaaaaa.", ".........", "........."}; static const int inputWidgetStyle = QWidget::WStyle_Customize | QWidget::WStyle_Tool | QWidget::WStyle_StaysOnTop | QWidget::WGroupLeader; InputMethods::InputMethods( QWidget *parent ) : QWidget( parent, "InputMethods", WStyle_Tool | WStyle_Customize ) { method = NULL; setBackgroundMode ( PaletteBackground ); QHBoxLayout *hbox = new QHBoxLayout( this ); kbdButton = new QToolButton( this ); kbdButton->setFocusPolicy(NoFocus); kbdButton->setToggleButton( TRUE ); kbdButton->setFixedHeight( 17 ); kbdButton->setFixedWidth( 32 ); kbdButton->setAutoRaise( TRUE ); kbdButton->setUsesBigPixmap( TRUE ); hbox->addWidget( kbdButton ); connect( kbdButton, SIGNAL(toggled(bool)), this, SLOT(showKbd(bool)) ); kbdChoice = new QToolButton( this ); kbdChoice->setFocusPolicy(NoFocus); kbdChoice->setPixmap( QPixmap( (const char **)tri_xpm ) ); kbdChoice->setFixedHeight( 17 ); kbdChoice->setFixedWidth( 12 ); kbdChoice->setAutoRaise( TRUE ); hbox->addWidget( kbdChoice ); connect( kbdChoice, SIGNAL(clicked()), this, SLOT(chooseKbd()) ); connect( (QPEApplication*)qApp, SIGNAL(clientMoused()), this, SLOT(resetStates()) ); loadInputMethods(); } InputMethods::~InputMethods() { #ifndef SINGLE_APP - QValueList<InputMethod>::Iterator mit; - for ( mit = inputMethodList.begin(); mit != inputMethodList.end(); ++mit ) { - int i = (*mit).interface->release(); - (*mit).library->unload(); - delete (*mit).library; - } + QValueList<InputMethod>::Iterator mit; + for ( mit = inputMethodList.begin(); mit != inputMethodList.end(); ++mit ) { + (void) (*mit).interface->release(); + (*mit).library->unload(); + delete (*mit).library; + } #endif } void InputMethods::hideInputMethod() { kbdButton->setOn( FALSE ); } void InputMethods::showInputMethod() { kbdButton->setOn( TRUE ); } void InputMethods::showInputMethod(const QString& name) { int i = 0; QValueList<InputMethod>::Iterator it; InputMethod *im = 0; for ( it = inputMethodList.begin(); it != inputMethodList.end(); ++it, i++ ) { if ( (*it).interface->name() == name ) { im = &(*it); break; } } if ( im ) chooseMethod(im); } void InputMethods::resetStates() { if ( method ) method->interface->resetState(); } QRect InputMethods::inputRect() const { if ( !method || !method->widget->isVisible() ) return QRect(); else return method->widget->geometry(); } void InputMethods::loadInputMethods() { #ifndef SINGLE_APP hideInputMethod(); method = 0; QValueList<InputMethod>::Iterator mit; for ( mit = inputMethodList.begin(); mit != inputMethodList.end(); ++mit ) { (*mit).interface->release(); (*mit).library->unload(); delete (*mit).library; } inputMethodList.clear(); QString path = QPEApplication::qpeDir() + "/plugins/inputmethods"; QDir dir( path, "lib*.so" ); QStringList list = dir.entryList(); QStringList::Iterator it; for ( it = list.begin(); it != list.end(); ++it ) { InputMethodInterface *iface = 0; QLibrary *lib = new QLibrary( path + "/" + *it ); if ( lib->queryInterface( IID_InputMethod, (QUnknownInterface**)&iface ) == QS_OK ) { InputMethod input; input.library = lib; input.interface = iface; input.widget = input.interface->inputMethod( 0, inputWidgetStyle ); input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) ); inputMethodList.append( input ); 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"; if ( trans->load( tfn )) qApp->installTranslator( trans ); else delete trans; } } else { delete lib; } } #else InputMethod input; input.interface = new HandwritingImpl(); input.widget = input.interface->inputMethod( 0, inputWidgetStyle ); input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) ); inputMethodList.append( input ); input.interface = new KeyboardImpl(); input.widget = input.interface->inputMethod( 0, inputWidgetStyle ); input.interface->onKeyPress( this, SLOT(sendKey(ushort,ushort,ushort,bool,bool)) ); inputMethodList.append( input ); |