Moved icons from resources to data/ fixed bug with segmentation fault when starting...
[mdictionary] / trunk / src / base / gui / MainWindow.cpp
index 34fcec1..24d699b 100644 (file)
 
 
 MainWindow::MainWindow(Backbone *backbone, QWidget *parent):
-    GUIInterface(parent),
-    ui(new Ui::MainWindow) {
+    GUIInterface(parent) {
 
     this->backbone = backbone;
 
+
     initializeUI();
 
     connectBackbone();
@@ -45,8 +45,6 @@ MainWindow::MainWindow(Backbone *backbone, QWidget *parent):
     connectMenu();
     connectBookmarksWidget();
 
-
-
     setExactSearch(false);
 
     setWindowTitle("mDictionary");
@@ -55,33 +53,39 @@ MainWindow::MainWindow(Backbone *backbone, QWidget *parent):
 }
 
 MainWindow::~MainWindow() {
-    delete ui;
+
 }
 
 
 void MainWindow::initializeUI() {
-    ui->setupUi(this);
 
     #ifdef Q_WS_MAEMO_5
         setAttribute(Qt::WA_Maemo5StackedWindow);
     #endif
 
-    searchBarWidget = new SearchBarWidget;
-
-    wordListWidget = new WordListWidget;
-
     //translationWidget is antoher stacked window, so we don't add it to layout
     //only create it with this widget as parent
     translationWidget = new TranslationWidget(this);
 
+
+    mainLayout = new QVBoxLayout;
+    QWidget* w = new QWidget;
+    w->setLayout(mainLayout);
+    setCentralWidget(w);
+    menuBar = new QMenuBar;
+    setMenuBar(menuBar);
+
+    searchBarWidget = new SearchBarWidget;
+
+    wordListWidget = new WordListWidget;
+
     welcomeScreenWidget = new WelcomeScreenWidget;
 
 
     #ifdef Q_WS_MAEMO_5
     //At start we set widget as welcome screen widget
-        ui->centralWidget->layout()->addWidget(welcomeScreenWidget);
-        QVBoxLayout* vl = (QVBoxLayout*)(ui->centralWidget->layout());
-        vl->addWidget(searchBarWidget, 0, Qt::AlignBottom);
+        mainLayout->addWidget(welcomeScreenWidget);
+        mainLayout->addWidget(searchBarWidget, 0, Qt::AlignBottom);
     #else
         translationWidget->hide();
         //we add to splitter word list and welcome screen
@@ -89,12 +93,11 @@ void MainWindow::initializeUI() {
         splitter->addWidget(wordListWidget);
         splitter->addWidget(welcomeScreenWidget);
         splitter->setStretchFactor(1, 150);
-        ui->centralWidget->layout()->addWidget(splitter);
-        ui->centralWidget->layout()->addWidget(searchBarWidget);
+        mainLayout->addWidget(splitter);
+        mainLayout->addWidget(searchBarWidget);
     #endif
 
 
-
     dictManagerWidget = new DictManagerWidget(this);
     dictManagerWidget->hide();
 
@@ -107,7 +110,6 @@ void MainWindow::initializeUI() {
     aboutWidget = new AboutWidget(this);
     aboutWidget->hide();
 
-
     //creating menus
 
     #ifdef Q_WS_MAEMO_5
@@ -116,17 +118,17 @@ void MainWindow::initializeUI() {
         menuWidget->addSubMenu(tr("Dictionaries"), dictManagerWidget);
         menuWidget->addSubMenu(tr("Bookmarks"), bookmarksWidget);
         menuWidget->addSubMenu(tr("About"), aboutWidget);
-        ui->menuBar->addAction(menuWidget);
+        menuBar->addAction(menuWidget);
     #else
-        dictionariesAction = ui->menuBar->addAction(tr("Dictionaries"));
+        dictionariesAction = menuBar->addAction(tr("Dictionaries"));
         connect(dictionariesAction, SIGNAL(triggered()),
                 dictManagerWidget, SLOT(show()));
 
-        settingsAction = ui->menuBar->addAction(tr("Settings"));
+        settingsAction = menuBar->addAction(tr("Settings"));
         connect(settingsAction, SIGNAL(triggered()),
                 settingsWidget, SLOT(show()));
 
-        QMenu* m = ui->menuBar->addMenu(tr("Bookmarks"));
+        QMenu* m = menuBar->addMenu(tr("Bookmarks"));
         bookmarksShowAllAction = new QAction(tr("Show all"), m);
 
         bookmarksRemoveAllAction = new QAction(tr("Remove all"), m);
@@ -134,11 +136,10 @@ void MainWindow::initializeUI() {
         m->addAction(bookmarksShowAllAction);
         m->addAction(bookmarksRemoveAllAction);
 
-        aboutAction = ui->menuBar->addAction(tr("About"));
+        aboutAction = menuBar->addAction(tr("About"));
         connect(aboutAction, SIGNAL(triggered()),
                 aboutWidget, SLOT(show()));
     #endif
-
 }
 
 void MainWindow::closeEvent(QCloseEvent *event) {
@@ -167,8 +168,8 @@ void MainWindow::wordListReady() {
     #ifdef Q_WS_MAEMO_5
     //switch welcome screen with word list
     if(!wordListWidget->isVisible()) {
-        int i = ui->centralWidget->layout()->indexOf(welcomeScreenWidget);
-        QBoxLayout* l = (QBoxLayout*)(ui->centralWidget->layout());
+        int i = mainLayout->indexOf(welcomeScreenWidget);
+        QBoxLayout* l = (QBoxLayout*)(mainLayout);
         l->removeWidget(welcomeScreenWidget);
         welcomeScreenWidget->deleteLater();
         l->insertWidget(0, wordListWidget);
@@ -224,7 +225,7 @@ void MainWindow::translationsReady() {
     #ifndef Q_WS_MAEMO_5
     //switch welcome screen with translation widget
     if(!translationWidget->isVisible()) {
-        QBoxLayout* l = (QBoxLayout*)(ui->centralWidget->layout());
+        QBoxLayout* l = (QBoxLayout*)(mainLayout);
         QSplitter* s = (QSplitter*)((QWidgetItem*)(l->itemAt(0))->widget());
         s->insertWidget(1,translationWidget);
         s->setStretchFactor(1, 150);
@@ -267,7 +268,6 @@ void MainWindow::breakSearching() {
 void MainWindow::addToHistory(QList<Translation *> trans) {
     if(trans.count() > 0) {
         backbone->history()->add(trans[0]->key());
-        translationWidget->setWindowTitle(trans[0]->key());
     }
 }
 
@@ -293,21 +293,21 @@ void MainWindow::historyPrev() {
 
 void MainWindow::disableMenu() {
     #ifdef Q_WS_MAEMO_5
-        if(ui->menuBar->actions().contains(menuWidget)) {
-              ui->menuBar->removeAction(menuWidget);
+        if(menuBar->actions().contains(menuWidget)) {
+              menuBar->removeAction(menuWidget);
         }
     #else
-        ui->menuBar->setEnabled(false);
+        menuBar->setEnabled(false);
     #endif
 }
 
 void MainWindow::enableMenu() {
     #ifdef Q_WS_MAEMO_5
-        if(!ui->menuBar->actions().contains(menuWidget)) {
-            ui->menuBar->addAction(menuWidget);
+        if(!menuBar->actions().contains(menuWidget)) {
+            menuBar->addAction(menuWidget);
         }
     #else
-        ui->menuBar->setEnabled(true);
+        menuBar->setEnabled(true);
     #endif
 }