109 HSDEBUG(debugMsg); |
111 HSDEBUG(debugMsg); |
110 #endif //Q_OS_SYMBIAN |
112 #endif //Q_OS_SYMBIAN |
111 |
113 |
112 HsAppTranslator *appTranslator = HsAppTranslator::instance(); |
114 HsAppTranslator *appTranslator = HsAppTranslator::instance(); |
113 appTranslator->setLanguage(); |
115 appTranslator->setLanguage(); |
114 |
116 |
115 // add translator for homescreen and application library |
117 // add translator for homescreen and application library |
|
118 QTranslator hsTranslator; |
|
119 QTranslator alTranslator; |
|
120 #ifdef Q_OS_SYMBIAN |
|
121 // TRAP is must here, otherwise it crashes |
|
122 TRAP_IGNORE( loadTranslationFilesOnSymbian(hsTranslator, alTranslator) ); |
|
123 #else |
116 QString locale = QLocale::system().name(); |
124 QString locale = QLocale::system().name(); |
117 |
|
118 QTranslator hsTranslator; |
|
119 QString hsTrFile = QString("homescreen_") + locale; |
125 QString hsTrFile = QString("homescreen_") + locale; |
120 |
126 hsTranslator.load(hsTrFile, QString(TR_FILE_PATH) ); |
121 QTranslator alTranslator; |
|
122 QString alTrFile = QString("hsapplibrary_") + locale; |
127 QString alTrFile = QString("hsapplibrary_") + locale; |
123 #ifdef Q_OS_SYMBIAN |
|
124 // TRAP is must here, otherwise it crashes |
|
125 TRAP_IGNORE( |
|
126 bool hsLoaded(false); |
|
127 hsLoaded = hsTranslator.load(hsTrFile, QString("z:/") + TR_FILE_PATH); |
|
128 if (!hsLoaded) |
|
129 hsTranslator.load(hsTrFile, QString("c:/") + TR_FILE_PATH); |
|
130 |
|
131 bool alLoaded(false); |
|
132 alLoaded = alTranslator.load(alTrFile, QString("z:/") + TR_FILE_PATH); |
|
133 if (!alLoaded) |
|
134 alTranslator.load(alTrFile, QString("c:/") + TR_FILE_PATH); |
|
135 ); |
|
136 #else |
|
137 hsTranslator.load(hsTrFile, QString(TR_FILE_PATH) ); |
|
138 alTranslator.load(alTrFile, QString(TR_FILE_PATH) ); |
128 alTranslator.load(alTrFile, QString(TR_FILE_PATH) ); |
139 #endif //Q_OS_SYMBIAN |
129 #endif //Q_OS_SYMBIAN |
140 app.installTranslator(&hsTranslator); |
130 qApp->installTranslator(&hsTranslator); |
141 app.installTranslator(&alTranslator); |
131 qApp->installTranslator(&alTranslator); |
142 |
132 |
143 #ifdef Q_OS_SYMBIAN |
133 #ifdef Q_OS_SYMBIAN |
144 QFile file("c:/private/20022f35/homescreendb"); |
134 copyHsDatabaseFileFromRom(); |
|
135 copyWallpapersFromRom(); |
|
136 #endif |
|
137 |
|
138 HbMainWindow window; |
|
139 window.setRenderHint(QPainter::SmoothPixmapTransform); |
|
140 |
|
141 HsHomeScreen hs; |
|
142 QObject::connect(&app, SIGNAL(aboutToQuit()) ,&hs, SLOT(stop())); |
|
143 QObject::connect(&hs, SIGNAL(exit()), &app, SLOT(quit()),Qt::QueuedConnection); |
|
144 hs.start(); |
|
145 |
|
146 app.installEventFilter(appTranslator); |
|
147 |
|
148 #ifdef Q_OS_SYMBIAN |
|
149 CEikonEnv * env = CEikonEnv::Static(); |
|
150 #ifdef S60APP_KEY |
|
151 env->RootWin().CaptureKeyUpAndDowns( EStdKeyApplication0, 0, 0 ); |
|
152 #endif //S60APP_KEY |
|
153 TRAP_IGNORE(setHomescreenAsSystemAppL(env)); |
|
154 HsMessageObserver observer; |
|
155 TRAP_IGNORE( env->AddMessageObserverL(observer)); |
|
156 #endif //Q_OS_SYMBIAN |
|
157 |
|
158 HSTEST("HS::main() call app.exec"); |
|
159 try { |
|
160 app.exec(); |
|
161 } catch(...) { |
|
162 HSTEST("HS::main() app.exec() catch"); |
|
163 } |
|
164 return 0; |
|
165 } |
|
166 |
|
167 #ifdef Q_OS_SYMBIAN |
|
168 |
|
169 /*! |
|
170 * Creates private folder to c: drive if not exists yet. |
|
171 */ |
|
172 void createPrivateFolder() |
|
173 { |
|
174 QDir dir("c:/private/20022f35/"); |
|
175 if(!dir.exists()) { |
|
176 HSTEST("HS::main() - c:/private/20022f35/ does not exist."); |
|
177 RFs fsSession; |
|
178 if(fsSession.Connect() != KErrNone){ |
|
179 HSTEST("HS::main() - Homescreen private dir creation failed!"); |
|
180 } |
|
181 fsSession.CreatePrivatePath(EDriveC); |
|
182 HSTEST("HS::main() - c:/private/20022f35/ created."); |
|
183 fsSession.Close(); |
|
184 if(!dir.exists()) { |
|
185 HSTEST("HS::main() - c:/private/20022f35/ creation failed."); |
|
186 } |
|
187 } |
|
188 HSTEST("HS::main() - c:/private/20022f35/ exists."); |
|
189 } |
|
190 |
|
191 /*! |
|
192 * Copies homescreen database from rom if database does not exist on c: drive |
|
193 */ |
|
194 void copyHsDatabaseFileFromRom() |
|
195 { |
|
196 QFile file("c:/private/20022f35/homescreen.db"); |
145 //If DB file does not exist copy default DB from z: (ROM) |
197 //If DB file does not exist copy default DB from z: (ROM) |
146 if(!file.exists()) { |
198 if(!file.exists()) { |
147 HSTEST("HS::main() - homescreendb not in c:"); |
199 HSTEST("HS::main() - homescreen.db not in c:"); |
148 file.setFileName("z:/private/20022f35/homescreendb"); |
200 file.setFileName("z:/private/20022f35/homescreen.db"); |
149 if(!file.exists()) { |
201 if(!file.exists()) { |
150 HSTEST("HS::main() - homescreendb not in ROM!"); |
202 HSTEST("HS::main() - homescreen.db not in ROM!"); |
151 } |
203 } else { |
152 else { |
204 HSTEST("HS::main() - homescreen.db found from z:"); |
153 HSTEST("HS::main() - homescreendb found from z:"); |
205 createPrivateFolder(); |
154 //We need to first create private folder if not exists |
206 //Copy DB from z: to c: |
155 QDir dir("c:/private/20022f35/"); |
207 if (!file.copy("c:/private/20022f35/homescreen.db")) { |
156 if(!dir.exists()) { |
208 HSTEST("HS::main() - homescreen.db copy from ROM to c: failed!"); |
157 HSTEST("HS::main() - c:/private/20022f35/ does not exist."); |
|
158 RFs fsSession; |
|
159 if(fsSession.Connect() != KErrNone){ |
|
160 HSTEST("HS::main() - Homescreen private dir creation failed!"); |
|
161 } |
|
162 fsSession.CreatePrivatePath(EDriveC); |
|
163 HSTEST("HS::main() - c:/private/20022f35/ created."); |
|
164 fsSession.Close(); |
|
165 if(!dir.exists()) { |
|
166 HSTEST("HS::main() - c:/private/20022f35/ creation failed."); |
|
167 } |
|
168 } |
209 } |
169 HSTEST("HS::main() - c:/private/20022f35/ exists."); |
210 HSTEST("HS::main() - homescreen.db copied from ROM to c:!"); |
170 //Copy DB from z: to c: |
211 file.setFileName("c:/private/20022f35/homescreen.db"); |
171 if (!file.copy("c:/private/20022f35/homescreendb")) { |
212 if(!file.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) { |
172 HSTEST("HS::main() - homescreendb copy from ROM to c: failed!"); |
213 HSTEST("HS::main() - homescreen.db ReadWrite permission settings on c: failed!"); |
173 } |
214 } |
174 HSTEST("HS::main() - homescreendb copied from ROM to c:!"); |
215 HSTEST("HS::main() - homescreen.db permission set to ReadWrite!"); |
175 file.setFileName("c:/private/20022f35/homescreendb"); |
|
176 if(!file.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) { |
|
177 HSTEST("HS::main() - homescreendb ReadWrite permission settings on c: failed!"); |
|
178 } |
|
179 HSTEST("HS::main() - homescreendb permission set to ReadWrite!"); |
|
180 } |
216 } |
181 } |
217 } |
182 #ifdef __WINS__ |
218 #ifdef __WINS__ |
183 else if(!file.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) { |
219 else if(!file.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) { |
184 HSTEST("HS::main() - homescreendb ReadWrite permission settings on emulator's c: failed!"); |
220 HSTEST("HS::main() - homescreen.db ReadWrite permission settings on emulator's c: failed!"); |
185 } |
221 } |
186 #endif |
222 #endif |
187 { |
223 |
|
224 } |
|
225 |
|
226 /*! |
|
227 * Copies homescreen wallpapers from rom if wallpaper directory does not exist on c: drive |
|
228 */ |
|
229 void copyWallpapersFromRom() |
|
230 { |
188 QDir dir("c:/private/20022f35/wallpapers"); |
231 QDir dir("c:/private/20022f35/wallpapers"); |
189 if(!dir.exists()) { |
232 if(!dir.exists()) { |
190 dir.mkpath("c:/private/20022f35/wallpapers/"); |
233 dir.mkpath("c:/private/20022f35/wallpapers/"); |
191 QDir dir2("z:/private/20022f35/wallpapers"); |
234 QDir dir2("z:/private/20022f35/wallpapers"); |
192 dir2.setFilter(QDir::Files); |
235 dir2.setFilter(QDir::Files); |
193 QStringList files = dir2.entryList(); |
236 QStringList files = dir2.entryList(); |
194 foreach(QString file, files) |
237 foreach(QString file, files) |
195 { |
238 { |
196 QString targetFile("c:/private/20022f35/wallpapers/" + file); |
239 QString targetFile("c:/private/20022f35/wallpapers/" + file); |
197 QFile::copy(dir2.absoluteFilePath(file), targetFile); |
240 if ( QFile::copy(dir2.absoluteFilePath(file), targetFile) ) { |
198 qDebug() << "image copied" << dir2.absoluteFilePath(file); |
241 qDebug() << "image copied" << dir2.absoluteFilePath(file); |
|
242 } |
199 QFile createdFile(targetFile); |
243 QFile createdFile(targetFile); |
200 if(!createdFile.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) { |
244 if(!createdFile.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) { |
201 qDebug() << "read write permission set failed for file" << targetFile; |
245 qDebug() << "read write permission set failed for file" << targetFile; |
202 } |
246 } |
203 } |
247 } |
204 |
248 } |
205 } |
249 } |
206 |
250 |
207 |
251 /*! |
208 } |
252 * Load translation files. |
209 |
253 */ |
210 #endif //Q_OS_SYMBIAN |
254 void loadTranslationFilesOnSymbian(QTranslator &hsTranslator, QTranslator &alTranslator) |
211 |
255 { |
212 HbMainWindow window; |
256 bool hsLoaded(false); |
213 window.setViewSwitchingEnabled(false); |
257 QString locale = QLocale::system().name(); |
214 |
258 QString hsTrFile = QString("homescreen_") + locale; |
215 HsHomeScreen hs; |
259 hsLoaded = hsTranslator.load(hsTrFile, QString("z:/") + TR_FILE_PATH); |
216 QObject::connect(&app, SIGNAL(aboutToQuit()) ,&hs, SLOT(stop())); |
260 if (!hsLoaded) { |
217 QObject::connect(&hs, SIGNAL(exit()), &app, SLOT(quit()),Qt::QueuedConnection); |
261 hsTranslator.load(hsTrFile, QString("c:/") + TR_FILE_PATH); |
218 hs.start(); |
262 } |
219 |
263 |
220 app.installEventFilter(appTranslator); |
264 bool alLoaded(false); |
221 |
265 QString alTrFile = QString("hsapplibrary_") + locale; |
222 #ifdef Q_OS_SYMBIAN |
266 alLoaded = alTranslator.load(alTrFile, QString("z:/") + TR_FILE_PATH); |
223 CEikonEnv * env = CEikonEnv::Static(); |
267 if (!alLoaded) { |
224 #ifdef S60APP_KEY |
268 alTranslator.load(alTrFile, QString("c:/") + TR_FILE_PATH); |
225 env->RootWin().CaptureKeyUpAndDowns( EStdKeyApplication0, 0, 0 ); |
269 } |
226 #endif //S60APP_KEY |
270 |
227 TRAP_IGNORE(setHomescreenAsSystemAppL(env)); |
271 } |
228 HsMessageObserver observer; |
272 |
229 TRAP_IGNORE( env->AddMessageObserverL(observer)); |
273 #endif |
230 #endif //Q_OS_SYMBIAN |
|
231 |
|
232 HSTEST("HS::main() call app.exec"); |
|
233 try { |
|
234 app.exec(); |
|
235 |
|
236 } catch(...) { |
|
237 HSTEST("HS::main() app.exec() catch"); |
|
238 } |
|
239 return 0; |
|
240 } |
|
241 |
|
242 |
|