src/gui/inputmethod/qinputcontextfactory.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 25 e24348a560a6
equal deleted inserted replaced
18:2f34d5167611 19:fcece45ef507
    71 #ifdef Q_WS_MAC
    71 #ifdef Q_WS_MAC
    72 #include "qmacinputcontext_p.h"
    72 #include "qmacinputcontext_p.h"
    73 #endif
    73 #endif
    74 #ifdef Q_WS_S60
    74 #ifdef Q_WS_S60
    75 #include "qcoefepinputcontext_p.h"
    75 #include "qcoefepinputcontext_p.h"
       
    76 #include "akninputlanguageinfo.h"
    76 #endif
    77 #endif
    77 
    78 
    78 #include "private/qfactoryloader_p.h"
    79 #include "private/qfactoryloader_p.h"
    79 #include "qmutex.h"
    80 #include "qmutex.h"
    80 
    81 
   196     result += loader()->keys();
   197     result += loader()->keys();
   197 #endif // QT_NO_LIBRARY
   198 #endif // QT_NO_LIBRARY
   198     return result;
   199     return result;
   199 }
   200 }
   200 
   201 
       
   202 #if defined(Q_WS_S60)
       
   203 /*!
       
   204     \internal
       
   205 
       
   206     This function contains pure Symbian exception handling code for
       
   207     getting S60 language list.
       
   208     Returned object ownership is transfered to caller.
       
   209 */
       
   210 static CAknInputLanguageList* s60LangListL()
       
   211 {
       
   212     CAknInputLanguageInfo *langInfo = AknInputLanguageInfoFactory::CreateInputLanguageInfoL();
       
   213     CleanupStack::PushL(langInfo);
       
   214     // In rare phone there is more than 7 languages installed -> use 7 as an array granularity
       
   215     CAknInputLanguageList *langList = new (ELeave) CAknInputLanguageList(7);
       
   216     CleanupStack::PushL(langList);
       
   217     langInfo->AppendAvailableLanguagesL(langList);
       
   218     CleanupStack::Pop(langList);
       
   219     CleanupStack::PopAndDestroy(langInfo);
       
   220     return langList;
       
   221 }
       
   222 
       
   223 /*!
       
   224     \internal
       
   225 
       
   226     This function utility function return S60 language list.
       
   227     Returned object ownership is transfered to caller.
       
   228 */
       
   229 static CAknInputLanguageList* s60LangList()
       
   230 {
       
   231     CAknInputLanguageList *langList = NULL;
       
   232     TRAP_IGNORE(langList = s60LangListL());
       
   233     q_check_ptr(langList);
       
   234     return langList;
       
   235 }
       
   236 #endif
       
   237 
   201 /*!
   238 /*!
   202     Returns the languages supported by the QInputContext object
   239     Returns the languages supported by the QInputContext object
   203     specified by \a key.
   240     specified by \a key.
   204 
   241 
   205     The languages are expressed as language code (e.g. "zh_CN",
   242     The languages are expressed as language code (e.g. "zh_CN",
   227     if (key == QLatin1String("mac"))
   264     if (key == QLatin1String("mac"))
   228         return QStringList(QString());
   265         return QStringList(QString());
   229 #endif
   266 #endif
   230 #if defined(Q_WS_S60)
   267 #if defined(Q_WS_S60)
   231     if (key == QLatin1String("coefep"))
   268     if (key == QLatin1String("coefep"))
   232         return QStringList(QString());
   269         {
       
   270         CAknInputLanguageList *langList = s60LangList();
       
   271         int count = langList->Count();
       
   272         for (int i = 0; i < count; ++i)
       
   273             {
       
   274             result.append(QString(qt_symbianLocaleName(langList->At(i)->LanguageCode())));
       
   275             }
       
   276         delete langList;
       
   277         }
   233 #endif
   278 #endif
   234 #if defined(QT_NO_LIBRARY) || defined(QT_NO_SETTINGS)
   279 #if defined(QT_NO_LIBRARY) || defined(QT_NO_SETTINGS)
   235     Q_UNUSED(key);
   280     Q_UNUSED(key);
   236 #else
   281 #else
   237     if (QInputContextFactoryInterface *factory =
   282     if (QInputContextFactoryInterface *factory =