-rw-r--r-- | library/qpeapplication.cpp | 68 |
1 files changed, 33 insertions, 35 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 0b6d56d..1117240 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -153,13 +153,12 @@ public: | |||
153 | 153 | ||
154 | QCString fontFamily; | 154 | QCString fontFamily; |
155 | int fontSize; | 155 | int fontSize; |
156 | int smallIconSize; | 156 | int smallIconSize; |
157 | int bigIconSize; | 157 | int bigIconSize; |
158 | 158 | ||
159 | QStringList langs; | ||
160 | QString appName; | 159 | QString appName; |
161 | struct QCopRec | 160 | struct QCopRec |
162 | { | 161 | { |
163 | QCopRec( const QCString &ch, const QCString &msg, | 162 | QCopRec( const QCString &ch, const QCString &msg, |
164 | const QByteArray &d ) : | 163 | const QByteArray &d ) : |
165 | channel( ch ), message( msg ), data( d ) | 164 | channel( ch ), message( msg ), data( d ) |
@@ -755,12 +754,35 @@ void QPEApplication::processQCopFile() | |||
755 | 754 | ||
756 | \sa qcop.html | 755 | \sa qcop.html |
757 | Note that messages received here may be processed by qpe application | 756 | Note that messages received here may be processed by qpe application |
758 | and emitted as signals, such as flush() and reload(). | 757 | and emitted as signals, such as flush() and reload(). |
759 | */ | 758 | */ |
760 | 759 | ||
760 | #ifndef QT_NO_TRANSLATION | ||
761 | static void qtopia_loadTranslations( const QStringList& qms ) | ||
762 | { | ||
763 | QStringList langs = Global::languageList(); | ||
764 | |||
765 | for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) { | ||
766 | QString lang = *it; | ||
767 | |||
768 | QTranslator * trans; | ||
769 | QString tfn; | ||
770 | |||
771 | for (QStringList::ConstIterator qmit = qms.begin(); qmit!=qms.end(); ++qmit) { | ||
772 | trans = new QTranslator(qApp); | ||
773 | tfn = QPEApplication::qpeDir() + "i18n/" + lang + "/" + *qmit + ".qm"; | ||
774 | if ( trans->load( tfn )) | ||
775 | qApp->installTranslator( trans ); | ||
776 | else | ||
777 | delete trans; | ||
778 | } | ||
779 | } | ||
780 | } | ||
781 | #endif | ||
782 | |||
761 | /*! | 783 | /*! |
762 | Constructs a QPEApplication just as you would construct | 784 | Constructs a QPEApplication just as you would construct |
763 | a QApplication, passing \a argc, \a argv, and \a t. | 785 | a QApplication, passing \a argc, \a argv, and \a t. |
764 | 786 | ||
765 | For applications, \a t should be the default, GuiClient. Only | 787 | For applications, \a t should be the default, GuiClient. Only |
766 | the Qtopia server passes GuiServer. | 788 | the Qtopia server passes GuiServer. |
@@ -842,38 +864,25 @@ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | |||
842 | 864 | ||
843 | /* overide stored arguments */ | 865 | /* overide stored arguments */ |
844 | setArgs( argc, argv ); | 866 | setArgs( argc, argv ); |
845 | 867 | ||
846 | #endif | 868 | #endif |
847 | #else | 869 | #else |
848 | initApp( argc, argv ); | 870 | initApp( argc, argv ); |
849 | #endif | 871 | #endif |
850 | #ifdef Q_WS_QWS | 872 | #ifdef Q_WS_QWS |
851 | /* load the font renderer factories */ | 873 | /* load the font renderer factories */ |
852 | FontDatabase::loadRenderers(); | 874 | FontDatabase::loadRenderers(); |
853 | #endif | 875 | #endif |
854 | #ifndef QT_NO_TRANSLATION | 876 | #ifndef QT_NO_TRANSLATION |
877 | QStringList qms; | ||
878 | qms << "libqpe"; | ||
879 | qms << "libopie"; | ||
880 | qms << d->appName; | ||
855 | 881 | ||
856 | d->langs = Global::languageList(); | 882 | qtopia_loadTranslations(qms); |
857 | for ( QStringList::ConstIterator it = d->langs.begin(); it != d->langs.end(); ++it ) { | ||
858 | QString lang = *it; | ||
859 | |||
860 | installTranslation( lang + "/libopie.qm"); | ||
861 | installTranslation( lang + "/libqpe.qm" ); | ||
862 | installTranslation( lang + "/" + d->appName + ".qm" ); | ||
863 | |||
864 | |||
865 | //###language/font hack; should look it up somewhere | ||
866 | #ifdef QWS | ||
867 | |||
868 | if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { | ||
869 | QFont fn = FontManager::unicodeFont( FontManager::Proportional ); | ||
870 | setFont( fn ); | ||
871 | } | ||
872 | #endif | ||
873 | } | ||
874 | #endif | 883 | #endif |
875 | 884 | ||
876 | applyStyle(); | 885 | applyStyle(); |
877 | 886 | ||
878 | if ( type() == GuiServer ) { | 887 | if ( type() == GuiServer ) { |
879 | setVolume(); | 888 | setVolume(); |
@@ -900,12 +909,16 @@ void QPEApplication::initApp( int argc, char **argv ) | |||
900 | 909 | ||
901 | QCString channel = QCString(argv[0]); | 910 | QCString channel = QCString(argv[0]); |
902 | 911 | ||
903 | channel.replace(QRegExp(".*/"),""); | 912 | channel.replace(QRegExp(".*/"),""); |
904 | d->appName = channel; | 913 | d->appName = channel; |
905 | 914 | ||
915 | #ifndef QT_NO_TRANSLATION | ||
916 | qtopia_loadTranslations( QStringList()<<channel ); | ||
917 | #endif | ||
918 | |||
906 | #if QT_VERSION > 235 | 919 | #if QT_VERSION > 235 |
907 | qt_fbdpy->setIdentity( channel ); // In Qt/E 2.3.6 | 920 | qt_fbdpy->setIdentity( channel ); // In Qt/E 2.3.6 |
908 | #endif | 921 | #endif |
909 | 922 | ||
910 | channel = "QPE/Application/" + channel; | 923 | channel = "QPE/Application/" + channel; |
911 | pidChannel = new QCopChannel( channel, this); | 924 | pidChannel = new QCopChannel( channel, this); |
@@ -931,16 +944,12 @@ void QPEApplication::initApp( int argc, char **argv ) | |||
931 | argc-=1; | 944 | argc-=1; |
932 | } | 945 | } |
933 | } | 946 | } |
934 | 947 | ||
935 | /* overide stored arguments */ | 948 | /* overide stored arguments */ |
936 | setArgs(argc, argv); | 949 | setArgs(argc, argv); |
937 | |||
938 | /* install translation here */ | ||
939 | for ( QStringList::ConstIterator it = d->langs.begin(); it != d->langs.end(); ++it ) | ||
940 | installTranslation( (*it) + "/" + d->appName + ".qm" ); | ||
941 | } | 950 | } |
942 | #endif | 951 | #endif |
943 | 952 | ||
944 | 953 | ||
945 | static QPtrDict<void>* inputMethodDict = 0; | 954 | static QPtrDict<void>* inputMethodDict = 0; |
946 | static void createInputMethodDict() | 955 | static void createInputMethodDict() |
@@ -2176,23 +2185,12 @@ void QPEApplication::tryQuit() | |||
2176 | d->store_widget_rect(d->qpe_main_widget, d->appName); | 2185 | d->store_widget_rect(d->qpe_main_widget, d->appName); |
2177 | processEvents(); | 2186 | processEvents(); |
2178 | 2187 | ||
2179 | quit(); | 2188 | quit(); |
2180 | } | 2189 | } |
2181 | 2190 | ||
2182 | /*! | ||
2183 | \internal | ||
2184 | */ | ||
2185 | void QPEApplication::installTranslation( const QString& baseName ) { | ||
2186 | QTranslator* trans = new QTranslator(this); | ||
2187 | QString tfn = qpeDir() + "/i18n/"+baseName; | ||
2188 | if ( trans->load( tfn ) ) | ||
2189 | installTranslator( trans ); | ||
2190 | else | ||
2191 | delete trans; | ||
2192 | } | ||
2193 | 2191 | ||
2194 | /*! | 2192 | /*! |
2195 | \internal | 2193 | \internal |
2196 | User initiated quit. Makes the window 'Go Away'. If preloaded this means | 2194 | User initiated quit. Makes the window 'Go Away'. If preloaded this means |
2197 | hiding the window. If not it means quitting the application. | 2195 | hiding the window. If not it means quitting the application. |
2198 | As this is user initiated we don't need to check state. | 2196 | As this is user initiated we don't need to check state. |