Merge branch 'qml' of ssh://drop.maemo.org/git/mdictionary into qml
[mdictionary] / src / mdictionary / gui / main.cpp
index c19b931..5196f8a 100644 (file)
 
 *******************************************************************************/
 
-//! \file main.cpp
-//! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+/*! \file main.cpp
+    \brief mDictionary's main file
+    \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+*/
 
 #include <QtGui/QApplication>
 #include "MainWindow.h"
 #include "../backbone/backbone.h"
-#include "../../common/translation.h"
-#include "../../common/Notify.h"
+#include "../../include/translation.h"
+#include "../../include/Notify.h"
 #include "DBusAdapter.h"
 #include <QDebug>
 #include <QDBusConnection>
@@ -54,6 +56,24 @@ QStringList parseParameters(int argc, char *argv[]) {
     return result;
 }
 
+void retranslate() {
+    QString locale = QLocale::system().name();
+
+    QTranslator *translator = new QTranslator;
+    QTranslator *qtTranslator = new QTranslator;
+
+    qtTranslator->load("qt_" + locale,
+    QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+    QCoreApplication::installTranslator(qtTranslator);
+
+    if(!translator->load(":/translations/" + locale)) {
+        translator->load(":/translations/en_US");
+
+    }
+
+    QCoreApplication::installTranslator(translator);
+}
+
 int main(int argc, char *argv[]) {
     QApplication a(argc, argv);
     QApplication::setOrganizationName("Comarch S.A.");
@@ -67,38 +87,32 @@ int main(int argc, char *argv[]) {
     qRegisterMetaType<Notify>("Notify");
     qRegisterMetaType<Notify::NotifyType>("Notify::NotifyType");
 
-    QString locale = QLocale::system().name();
-
-    QTranslator qtTranslator;
-    qtTranslator.load("qt_" + QLocale::system().name(),
-    QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-
-    a.installTranslator(&qtTranslator);
-
-    QTranslator myTranslator;
-    if(locale == "pl_PL")
-        myTranslator.load(":/translations/dict_pl");
-    else
-        myTranslator.load(":/translations/dict_en");
-    a.installTranslator(&myTranslator);
+    retranslate();
 
-    Backbone backbone;
-    MainWindow w(&backbone);
+    Backbone* backbone = new Backbone();
+    MainWindow* mainWindow = new MainWindow(backbone);
 
-    DBusAdapter* adapter = new DBusAdapter(&w);
+    DBusAdapter* adapter = new DBusAdapter(mainWindow);
 
     QDBusConnection::sessionBus().registerObject("/mainWindow",
-                                                 &w);
+                                                 mainWindow);
     QDBusConnection::sessionBus().registerService("com.comarch.mdictionary");
 
-
-    w.show();
-
+    mainWindow->show();
 
     if(search.count() > 0) {
-        w.setExactSearch(true);
-        w.searchExact(search[0]);
+        mainWindow->setExactSearch(true);
+        mainWindow->searchExact(search[0]);
     }
 
-    return a.exec();
+    int res = a.exec();
+
+    QDBusConnection::sessionBus().unregisterObject("/mainWindow");
+    QDBusConnection::sessionBus().unregisterService("com.comarch.mdictionary");
+
+    delete adapter;
+    delete mainWindow;
+    delete backbone;
+
+    return res;
 }