--- a/homescreenapp/hsapplication/src/main.cpp Fri Mar 19 09:27:44 2010 +0200
+++ b/homescreenapp/hsapplication/src/main.cpp Fri Apr 16 14:54:01 2010 +0300
@@ -14,6 +14,7 @@
* Description: Main.
*
*/
+
#include <QTranslator>
#include <QMessageBox>
#include <hbapplication.h>
@@ -36,6 +37,12 @@
#include <e32debug.h>
#include <apgwgnam.h>
+
+void loadTranslationFilesOnSymbian(QTranslator &hsTranslator, QTranslator &alTranslator);
+void copyWallpapersFromRom();
+void copyHsDatabaseFileFromRom();
+void createPrivateFolder();
+
// it is temporary class used for getting notifcation about APA messages
// it is used for processing message send by AVKON to activate Menu
class HsMessageObserver: public MCoeMessageObserver {
@@ -54,14 +61,12 @@
{
CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(eikonEnv->WsSession());
wgName->SetSystem(ETrue); // Allow only application with PowerManagement cap to shut us down
- wgName->SetCaptionL(_L("HsApplication"));
+ wgName->SetCaptionL(_L("hsapplication"));
wgName->SetAppUid(TUid::Uid(0x20022F35));
wgName->SetWindowGroupName(eikonEnv->RootWin());
CleanupStack::PopAndDestroy();
}
-
-
void myMessageOutput(QtMsgType type, const char *msg)
{
switch (type) {
@@ -86,12 +91,9 @@
#endif //Q_OS_SYMBIAN
-
-
+/*!
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
+*/
int main(int argc, char *argv[])
{
#ifdef Q_OS_SYMBIAN
@@ -111,107 +113,31 @@
HsAppTranslator *appTranslator = HsAppTranslator::instance();
appTranslator->setLanguage();
-
+
// add translator for homescreen and application library
- QString locale = QLocale::system().name();
-
QTranslator hsTranslator;
- QString hsTrFile = QString("homescreen_") + locale;
-
QTranslator alTranslator;
- QString alTrFile = QString("hsapplibrary_") + locale;
#ifdef Q_OS_SYMBIAN
// TRAP is must here, otherwise it crashes
-TRAP_IGNORE(
- bool hsLoaded(false);
- hsLoaded = hsTranslator.load(hsTrFile, QString("z:/") + TR_FILE_PATH);
- if (!hsLoaded)
- hsTranslator.load(hsTrFile, QString("c:/") + TR_FILE_PATH);
-
- bool alLoaded(false);
- alLoaded = alTranslator.load(alTrFile, QString("z:/") + TR_FILE_PATH);
- if (!alLoaded)
- alTranslator.load(alTrFile, QString("c:/") + TR_FILE_PATH);
-);
+ TRAP_IGNORE( loadTranslationFilesOnSymbian(hsTranslator, alTranslator) );
#else
+ QString locale = QLocale::system().name();
+ QString hsTrFile = QString("homescreen_") + locale;
hsTranslator.load(hsTrFile, QString(TR_FILE_PATH) );
+ QString alTrFile = QString("hsapplibrary_") + locale;
alTranslator.load(alTrFile, QString(TR_FILE_PATH) );
#endif //Q_OS_SYMBIAN
- app.installTranslator(&hsTranslator);
- app.installTranslator(&alTranslator);
-
+ qApp->installTranslator(&hsTranslator);
+ qApp->installTranslator(&alTranslator);
+
#ifdef Q_OS_SYMBIAN
- QFile file("c:/private/20022f35/homescreendb");
- //If DB file does not exist copy default DB from z: (ROM)
- if(!file.exists()) {
- HSTEST("HS::main() - homescreendb not in c:");
- file.setFileName("z:/private/20022f35/homescreendb");
- if(!file.exists()) {
- HSTEST("HS::main() - homescreendb not in ROM!");
- }
- else {
- HSTEST("HS::main() - homescreendb found from z:");
- //We need to first create private folder if not exists
- QDir dir("c:/private/20022f35/");
- if(!dir.exists()) {
- HSTEST("HS::main() - c:/private/20022f35/ does not exist.");
- RFs fsSession;
- if(fsSession.Connect() != KErrNone){
- HSTEST("HS::main() - Homescreen private dir creation failed!");
- }
- fsSession.CreatePrivatePath(EDriveC);
- HSTEST("HS::main() - c:/private/20022f35/ created.");
- fsSession.Close();
- if(!dir.exists()) {
- HSTEST("HS::main() - c:/private/20022f35/ creation failed.");
- }
- }
- HSTEST("HS::main() - c:/private/20022f35/ exists.");
- //Copy DB from z: to c:
- if (!file.copy("c:/private/20022f35/homescreendb")) {
- HSTEST("HS::main() - homescreendb copy from ROM to c: failed!");
- }
- HSTEST("HS::main() - homescreendb copied from ROM to c:!");
- file.setFileName("c:/private/20022f35/homescreendb");
- if(!file.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) {
- HSTEST("HS::main() - homescreendb ReadWrite permission settings on c: failed!");
- }
- HSTEST("HS::main() - homescreendb permission set to ReadWrite!");
- }
- }
-#ifdef __WINS__
- else if(!file.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) {
- HSTEST("HS::main() - homescreendb ReadWrite permission settings on emulator's c: failed!");
- }
+ copyHsDatabaseFileFromRom();
+ copyWallpapersFromRom();
#endif
- {
- QDir dir("c:/private/20022f35/wallpapers");
- if(!dir.exists()) {
- dir.mkpath("c:/private/20022f35/wallpapers/");
- QDir dir2("z:/private/20022f35/wallpapers");
- dir2.setFilter(QDir::Files);
- QStringList files = dir2.entryList();
- foreach(QString file, files)
- {
- QString targetFile("c:/private/20022f35/wallpapers/" + file);
- QFile::copy(dir2.absoluteFilePath(file), targetFile);
- qDebug() << "image copied" << dir2.absoluteFilePath(file);
- QFile createdFile(targetFile);
- if(!createdFile.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) {
- qDebug() << "read write permission set failed for file" << targetFile;
- }
- }
-
- }
-
-
- }
-
-#endif //Q_OS_SYMBIAN
-
+
HbMainWindow window;
- window.setViewSwitchingEnabled(false);
-
+ window.setRenderHint(QPainter::SmoothPixmapTransform);
+
HsHomeScreen hs;
QObject::connect(&app, SIGNAL(aboutToQuit()) ,&hs, SLOT(stop()));
QObject::connect(&hs, SIGNAL(exit()), &app, SLOT(quit()),Qt::QueuedConnection);
@@ -232,11 +158,116 @@
HSTEST("HS::main() call app.exec");
try {
app.exec();
-
} catch(...) {
HSTEST("HS::main() app.exec() catch");
}
return 0;
}
+#ifdef Q_OS_SYMBIAN
+/*!
+ * Creates private folder to c: drive if not exists yet.
+ */
+void createPrivateFolder()
+{
+ QDir dir("c:/private/20022f35/");
+ if(!dir.exists()) {
+ HSTEST("HS::main() - c:/private/20022f35/ does not exist.");
+ RFs fsSession;
+ if(fsSession.Connect() != KErrNone){
+ HSTEST("HS::main() - Homescreen private dir creation failed!");
+ }
+ fsSession.CreatePrivatePath(EDriveC);
+ HSTEST("HS::main() - c:/private/20022f35/ created.");
+ fsSession.Close();
+ if(!dir.exists()) {
+ HSTEST("HS::main() - c:/private/20022f35/ creation failed.");
+ }
+ }
+ HSTEST("HS::main() - c:/private/20022f35/ exists.");
+}
+
+/*!
+ * Copies homescreen database from rom if database does not exist on c: drive
+ */
+void copyHsDatabaseFileFromRom()
+{
+ QFile file("c:/private/20022f35/homescreen.db");
+ //If DB file does not exist copy default DB from z: (ROM)
+ if(!file.exists()) {
+ HSTEST("HS::main() - homescreen.db not in c:");
+ file.setFileName("z:/private/20022f35/homescreen.db");
+ if(!file.exists()) {
+ HSTEST("HS::main() - homescreen.db not in ROM!");
+ } else {
+ HSTEST("HS::main() - homescreen.db found from z:");
+ createPrivateFolder();
+ //Copy DB from z: to c:
+ if (!file.copy("c:/private/20022f35/homescreen.db")) {
+ HSTEST("HS::main() - homescreen.db copy from ROM to c: failed!");
+ }
+ HSTEST("HS::main() - homescreen.db copied from ROM to c:!");
+ file.setFileName("c:/private/20022f35/homescreen.db");
+ if(!file.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) {
+ HSTEST("HS::main() - homescreen.db ReadWrite permission settings on c: failed!");
+ }
+ HSTEST("HS::main() - homescreen.db permission set to ReadWrite!");
+ }
+ }
+#ifdef __WINS__
+ else if(!file.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) {
+ HSTEST("HS::main() - homescreen.db ReadWrite permission settings on emulator's c: failed!");
+ }
+#endif
+
+}
+
+/*!
+ * Copies homescreen wallpapers from rom if wallpaper directory does not exist on c: drive
+ */
+void copyWallpapersFromRom()
+{
+ QDir dir("c:/private/20022f35/wallpapers");
+ if(!dir.exists()) {
+ dir.mkpath("c:/private/20022f35/wallpapers/");
+ QDir dir2("z:/private/20022f35/wallpapers");
+ dir2.setFilter(QDir::Files);
+ QStringList files = dir2.entryList();
+ foreach(QString file, files)
+ {
+ QString targetFile("c:/private/20022f35/wallpapers/" + file);
+ if ( QFile::copy(dir2.absoluteFilePath(file), targetFile) ) {
+ qDebug() << "image copied" << dir2.absoluteFilePath(file);
+ }
+ QFile createdFile(targetFile);
+ if(!createdFile.setPermissions(QFile::ReadOwner | QFile::WriteOwner)) {
+ qDebug() << "read write permission set failed for file" << targetFile;
+ }
+ }
+ }
+}
+
+/*!
+ * Load translation files.
+ */
+void loadTranslationFilesOnSymbian(QTranslator &hsTranslator, QTranslator &alTranslator)
+{
+ bool hsLoaded(false);
+ QString locale = QLocale::system().name();
+ QString hsTrFile = QString("homescreen_") + locale;
+ hsLoaded = hsTranslator.load(hsTrFile, QString("z:/") + TR_FILE_PATH);
+ if (!hsLoaded) {
+ hsTranslator.load(hsTrFile, QString("c:/") + TR_FILE_PATH);
+ }
+
+ bool alLoaded(false);
+ QString alTrFile = QString("hsapplibrary_") + locale;
+ alLoaded = alTranslator.load(alTrFile, QString("z:/") + TR_FILE_PATH);
+ if (!alLoaded) {
+ alTranslator.load(alTrFile, QString("c:/") + TR_FILE_PATH);
+ }
+
+}
+
+#endif