X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=main.cpp;h=e622dc8942cb578e6312e0eba5d6de71a44fbd76;hb=17bbd5548e70759286f56acd2e0cd6ea61dab473;hp=3bd45d99af005602c9141117895137e48f91424f;hpb=6e9f419378cace1dd0ad2e591e5372c2094a4b88;p=dorian diff --git a/main.cpp b/main.cpp index 3bd45d9..e622dc8 100644 --- a/main.cpp +++ b/main.cpp @@ -28,45 +28,53 @@ static const QtMsgType DORIAN_DEFAULT_TRACE_LEVEL = int main(int argc, char *argv[]) { - QApplication a(argc, argv); int ret; - a.setApplicationName("Dorian"); - a.setApplicationVersion(DORIAN_VERSION); - a.setOrganizationDomain("pipacs.com"); - a.setOrganizationName("Pipacs"); + // Set up application + QApplication app(argc, argv); + app.setApplicationName("Dorian"); + app.setApplicationVersion(DORIAN_VERSION); + app.setOrganizationDomain("pipacs.com"); + app.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); -#ifdef Q_OS_SYMBIAN - Splash *splash = new Splash(); - splash->showFullScreen(); - a.processEvents(); -#endif + // Show splash screen + Splash splash; + splash.show(); + app.processEvents(); - { - MainWindow w; -#ifdef Q_OS_SYMBIAN - splash->close(); - splash->deleteLater(); -#endif - ret = a.exec(); + // Initialize main window + MainWindow *mainWindow = new MainWindow(); + mainWindow->initialize(); + + // Hide splash screen + splash.finish(mainWindow); + + // Apply settings (orientation, style etc.) + settings->apply(); + + // Run event loop, re-start application if event loop exit code was 1000 + ret = app.exec(); + if (ret == 1000) { + Platform::instance()->restart(argv); } // Release singletons + delete mainWindow; Library::close(); 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; }