X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=main.cpp;h=b6558660fa3488f9f1c8ae0b15f2913df66364f9;hb=b28659ebcbbcd4c42d90e0439fc09e03fc5a47cc;hp=1676a8e23472ce337992e2bd101cbfcdb099a13b;hpb=f20681cd459f9ac2dcf87763206ea99bc9d5094f;p=dorian diff --git a/main.cpp b/main.cpp index 1676a8e..b655866 100644 --- a/main.cpp +++ b/main.cpp @@ -8,6 +8,7 @@ #include "bookdb.h" #include "search.h" #include "platform.h" +#include "splash.h" #ifdef Q_OS_SYMBIAN # include "mediakeysobserver.h" @@ -27,21 +28,46 @@ static const QtMsgType DORIAN_DEFAULT_TRACE_LEVEL = int main(int argc, char *argv[]) { - QApplication a(argc, argv); int ret; + // Set up application + QApplication a(argc, argv); a.setApplicationName("Dorian"); a.setApplicationVersion(DORIAN_VERSION); a.setOrganizationDomain("pipacs.com"); a.setOrganizationName("Pipacs"); - Trace::level = (QtMsgType)Settings::instance()-> + // Initialize tracing + Settings *settings = Settings::instance(); + Trace::level = (QtMsgType)settings-> value("tracelevel", (int)DORIAN_DEFAULT_TRACE_LEVEL).toInt(); + Trace::setFileName(settings->value("tracefilename").toString()); qInstallMsgHandler(Trace::messageHandler); - { - MainWindow w; - ret = a.exec(); +#if 0 // def Q_OS_SYMBIAN + // Show splash screen + Splash *splash = new Splash(); + splash->showFullScreen(); + // splash->showMaximized(); + splash->raise(); + a.processEvents(); +#endif + + // Create and initialize main window, then run event loop + MainWindow *mainWindow = new MainWindow(); + settings->apply(); + mainWindow->initialize(); +#if 0 // def Q_OS_SYMBIAN + splash->close(); + delete splash; + mainWindow->showNormal(); +#endif + ret = a.exec(); + delete mainWindow; + + // Re-start application if event loop exit code was 1000 + if (ret == 1000) { + Platform::instance()->restart(argv); } // Release singletons @@ -49,13 +75,10 @@ int main(int argc, char *argv[]) BookDb::close(); Settings::close(); Search::close(); + Platform::close(); #ifdef Q_OS_SYMBIAN MediaKeysObserver::close(); #endif - // Re-start application if event loop exit code was 1000 - if (ret == 1000) { - Platform::restart(argv); - } return ret; }