Initial release.
[dorian] / main.cpp
index e50a753..b655866 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -28,30 +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);
 
-#ifdef Q_OS_SYMBIAN
+#if 0 // def Q_OS_SYMBIAN
+    // Show splash screen
     Splash *splash = new Splash();
     splash->showFullScreen();
+    // splash->showMaximized();
+    splash->raise();
     a.processEvents();
 #endif
 
-    {
-        MainWindow w;
-#ifdef Q_OS_SYMBIAN
-        splash->close();
+    // 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();
+    ret = a.exec();
+    delete mainWindow;
+
+    // Re-start application if event loop exit code was 1000
+    if (ret == 1000) {
+        Platform::instance()->restart(argv);
     }
 
     // Release singletons
@@ -59,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;
 }