diff -r f9ce957a272c -r cdae8c6c3876 homescreenapp/hsapplication/src/main.cpp --- 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 #include #include @@ -36,6 +37,12 @@ #include #include + +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