homescreenapp/hsapplication/src/main.cpp
changeset 36 cdae8c6c3876
parent 35 f9ce957a272c
child 39 4e8ebe173323
--- 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