18 #include <QTranslator> |
18 #include <QTranslator> |
19 #include <QMessageBox> |
19 #include <QMessageBox> |
20 #include <hbapplication.h> |
20 #include <hbapplication.h> |
21 #include <hbmainwindow.h> |
21 #include <hbmainwindow.h> |
22 #include "hshomescreen.h" |
22 #include "hshomescreen.h" |
23 #include "hsapptranslator.h" |
|
24 #include "hstest_global.h" |
23 #include "hstest_global.h" |
25 |
24 |
26 namespace |
25 namespace |
27 { |
26 { |
28 const char TR_FILE_PATH[] = "resource/qt/translations"; |
27 const char TR_FILE_PATH[] = "resource/qt/translations"; |
36 #include <eikenv.h> |
35 #include <eikenv.h> |
37 #include <e32debug.h> |
36 #include <e32debug.h> |
38 #include <apgwgnam.h> |
37 #include <apgwgnam.h> |
39 |
38 |
40 |
39 |
41 void loadTranslationFilesOnSymbian(QTranslator &hsTranslator, QTranslator &alTranslator); |
40 void loadTranslationFilesOnSymbian(QTranslator &commonTranslator, |
|
41 QTranslator &hsTranslator, |
|
42 QTranslator &alTranslator); |
42 void copyWallpapersFromRom(); |
43 void copyWallpapersFromRom(); |
43 void copyHsDatabaseFileFromRom(); |
44 void copyHsDatabaseFileFromRom(); |
44 void createPrivateFolder(); |
45 void createPrivateFolder(); |
45 |
|
46 // it is temporary class used for getting notifcation about APA messages |
|
47 // it is used for processing message send by AVKON to activate Menu |
|
48 class HsMessageObserver: public MCoeMessageObserver { |
|
49 |
|
50 TMessageResponse HandleMessageL(TUint32 /*aClientHandleOfTargetWindowGroup*/, |
|
51 TUid /*aMessageUid*/, |
|
52 const TDesC8& /*aMessageParameters*/) |
|
53 { |
|
54 // move application to foreground |
|
55 QApplication::topLevelAt(0,0)->raise(); |
|
56 return EMessageHandled; |
|
57 } |
|
58 }; |
|
59 |
46 |
60 void setHomescreenAsSystemAppL(CEikonEnv* eikonEnv) |
47 void setHomescreenAsSystemAppL(CEikonEnv* eikonEnv) |
61 { |
48 { |
62 CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(eikonEnv->WsSession()); |
49 CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(eikonEnv->WsSession()); |
63 wgName->SetSystem(ETrue); // Allow only application with PowerManagement cap to shut us down |
50 wgName->SetSystem(ETrue); // Allow only application with PowerManagement cap to shut us down |
109 QDir::setCurrent(currentPath); |
96 QDir::setCurrent(currentPath); |
110 QString debugMsg = "HS::main() - HsApplication's current dir set to: " + currentPath; |
97 QString debugMsg = "HS::main() - HsApplication's current dir set to: " + currentPath; |
111 HSDEBUG(debugMsg); |
98 HSDEBUG(debugMsg); |
112 #endif //Q_OS_SYMBIAN |
99 #endif //Q_OS_SYMBIAN |
113 |
100 |
114 HsAppTranslator *appTranslator = HsAppTranslator::instance(); |
|
115 appTranslator->setLanguage(); |
|
116 |
|
117 // add translator for homescreen and application library |
101 // add translator for homescreen and application library |
118 QTranslator hsTranslator; |
102 QTranslator hsTranslator; |
119 QTranslator alTranslator; |
103 QTranslator alTranslator; |
|
104 QTranslator commonTranslator; |
120 #ifdef Q_OS_SYMBIAN |
105 #ifdef Q_OS_SYMBIAN |
121 // TRAP is must here, otherwise it crashes |
106 // TRAP is must here, otherwise it crashes |
122 TRAP_IGNORE( loadTranslationFilesOnSymbian(hsTranslator, alTranslator) ); |
107 TRAP_IGNORE( loadTranslationFilesOnSymbian(commonTranslator, hsTranslator, alTranslator) ); |
123 #else |
108 #else |
124 QString locale = QLocale::system().name(); |
109 QString locale = QLocale::system().name(); |
125 QString hsTrFile = QString("homescreen_") + locale; |
110 QString hsTrFile = QString("homescreen_") + locale; |
126 hsTranslator.load(hsTrFile, QString(TR_FILE_PATH) ); |
111 hsTranslator.load(hsTrFile, QString(TR_FILE_PATH) ); |
127 QString alTrFile = QString("hsapplibrary_") + locale; |
112 QString alTrFile = QString("hsapplibrary_") + locale; |
128 alTranslator.load(alTrFile, QString(TR_FILE_PATH) ); |
113 alTranslator.load(alTrFile, QString(TR_FILE_PATH) ); |
129 #endif //Q_OS_SYMBIAN |
114 #endif //Q_OS_SYMBIAN |
|
115 qApp->installTranslator(&commonTranslator); |
130 qApp->installTranslator(&hsTranslator); |
116 qApp->installTranslator(&hsTranslator); |
131 qApp->installTranslator(&alTranslator); |
117 qApp->installTranslator(&alTranslator); |
132 |
118 |
133 #ifdef Q_OS_SYMBIAN |
119 #ifdef Q_OS_SYMBIAN |
134 copyHsDatabaseFileFromRom(); |
120 copyHsDatabaseFileFromRom(); |
141 HsHomeScreen hs; |
127 HsHomeScreen hs; |
142 QObject::connect(&app, SIGNAL(aboutToQuit()) ,&hs, SLOT(stop())); |
128 QObject::connect(&app, SIGNAL(aboutToQuit()) ,&hs, SLOT(stop())); |
143 QObject::connect(&hs, SIGNAL(exit()), &app, SLOT(quit()),Qt::QueuedConnection); |
129 QObject::connect(&hs, SIGNAL(exit()), &app, SLOT(quit()),Qt::QueuedConnection); |
144 hs.start(); |
130 hs.start(); |
145 |
131 |
146 app.installEventFilter(appTranslator); |
|
147 |
|
148 #ifdef Q_OS_SYMBIAN |
132 #ifdef Q_OS_SYMBIAN |
149 CEikonEnv * env = CEikonEnv::Static(); |
133 CEikonEnv * env = CEikonEnv::Static(); |
150 #ifdef S60APP_KEY |
|
151 env->RootWin().CaptureKeyUpAndDowns( EStdKeyApplication0, 0, 0 ); |
|
152 #endif //S60APP_KEY |
|
153 TRAP_IGNORE(setHomescreenAsSystemAppL(env)); |
134 TRAP_IGNORE(setHomescreenAsSystemAppL(env)); |
154 HsMessageObserver observer; |
|
155 TRAP_IGNORE( env->AddMessageObserverL(observer)); |
|
156 #endif //Q_OS_SYMBIAN |
135 #endif //Q_OS_SYMBIAN |
157 |
136 |
158 HSTEST("HS::main() call app.exec"); |
137 HSTEST("HS::main() call app.exec"); |
159 try { |
138 try { |
160 app.exec(); |
139 app.exec(); |
249 } |
228 } |
250 |
229 |
251 /*! |
230 /*! |
252 * Load translation files. |
231 * Load translation files. |
253 */ |
232 */ |
254 void loadTranslationFilesOnSymbian(QTranslator &hsTranslator, QTranslator &alTranslator) |
233 void loadTranslationFilesOnSymbian(QTranslator &commonTranslator, |
255 { |
234 QTranslator &hsTranslator, |
|
235 QTranslator &alTranslator) |
|
236 { |
|
237 QString locale = QLocale::system().name(); |
|
238 bool commonLoaded(false); |
|
239 QString commonTrFile = QString("common_") + locale; |
|
240 commonLoaded = commonTranslator.load(commonTrFile, QString("z:/") + TR_FILE_PATH); |
|
241 if (!commonLoaded) { |
|
242 commonTranslator.load(commonTrFile, QString("c:/") + TR_FILE_PATH); |
|
243 } |
256 bool hsLoaded(false); |
244 bool hsLoaded(false); |
257 QString locale = QLocale::system().name(); |
|
258 QString hsTrFile = QString("homescreen_") + locale; |
245 QString hsTrFile = QString("homescreen_") + locale; |
259 hsLoaded = hsTranslator.load(hsTrFile, QString("z:/") + TR_FILE_PATH); |
246 hsLoaded = hsTranslator.load(hsTrFile, QString("z:/") + TR_FILE_PATH); |
260 if (!hsLoaded) { |
247 if (!hsLoaded) { |
261 hsTranslator.load(hsTrFile, QString("c:/") + TR_FILE_PATH); |
248 hsTranslator.load(hsTrFile, QString("c:/") + TR_FILE_PATH); |
262 } |
249 } |