Merge branch 'bookmarks' of ssh://drop.maemo.org/git/mdictionary into bookmarks
[mdictionary] / trunk / src / base / gui / MainWindow.cpp
index 30b049b..c04dec4 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "MainWindow.h"
 #include "ui_MainWindow.h"
+#include <QtGui>
 #ifdef Q_WS_MAEMO_5
     #include <QMaemo5InformationBox>
 #endif
@@ -46,6 +47,8 @@ MainWindow::MainWindow(Backbone *backbone, QWidget *parent):
     connectTranslationWidget();
     connectDictManager();
     connectMenu();
+    connectBookmarksWidget();
+
 
     setExactSearch(false);
 
@@ -75,18 +78,21 @@ void MainWindow::initializeUI() {
     //only create it with this widget as parent
     translationWidget = new TranslationWidget(this);
 
+    welcomeScreenWidget = new WelcomeScreenWidget;
+
     #ifdef Q_WS_MAEMO_5
-        ui->centralWidget->layout()->addWidget(wordListWidget);
+        ui->centralWidget->layout()->addWidget(welcomeScreenWidget);
     #else
+        translationWidget->hide();
         splitter = new QSplitter(Qt::Horizontal);
         splitter->addWidget(wordListWidget);
-        splitter->addWidget(translationWidget);
+        splitter->addWidget(welcomeScreenWidget);
         splitter->setStretchFactor(1, 150);
         ui->centralWidget->layout()->addWidget(splitter);
     #endif
-    ui->centralWidget->layout()->addWidget(searchBarWidget);
-
 
+    QVBoxLayout* vl = (QVBoxLayout*)(ui->centralWidget->layout());
+    vl->addWidget(searchBarWidget, 0, Qt::AlignBottom);
 
     dictManagerWidget = new DictManagerWidget(this);
     dictManagerWidget->hide();
@@ -94,6 +100,11 @@ void MainWindow::initializeUI() {
     settingsWidget = new SettingsWidget(this);
     settingsWidget->hide();
 
+    bookmarksWidget = new BookmarksWidget(this);
+    bookmarksWidget->hide();
+
+    menu = new QMenu(this);
+    
     aboutWidget = new AboutWidget(this);
     aboutWidget->hide();
 
@@ -103,6 +114,7 @@ void MainWindow::initializeUI() {
         menuWidget = new MenuWidget(this);
         menuWidget->addSubMenu(tr("Settings"), settingsWidget);
         menuWidget->addSubMenu(tr("Dictionaries"), dictManagerWidget);
+        menuWidget->addSubMenu(tr("Bookmarks"), bookmarksWidget);
         menuWidget->addSubMenu(tr("About"), aboutWidget);
         ui->menuBar->addAction(menuWidget);
     #else
@@ -114,7 +126,11 @@ void MainWindow::initializeUI() {
         connect(settingsAction, SIGNAL(triggered()),
                 settingsWidget, SLOT(show()));
 
-        aboutAction = ui->menuBar->addAction(tr("About"));
+        bookmarksAction = ui->menuBar->addAction(tr("Bookmarks"));
+        connect(bookmarksAction, SIGNAL(triggered()),
+                bookmarksWidget, SLOT(show()));
+        
+       aboutAction = ui->menuBar->addAction(tr("About"));
         connect(aboutAction, SIGNAL(triggered()),
                 aboutWidget, SLOT(show()));
     #endif
@@ -144,6 +160,16 @@ void MainWindow::wordListReady() {
     QMultiHash<QString, Translation*> res = backbone->result();
     QHash<QString, QList<Translation*> > searchResult;
 
+    #ifdef Q_WS_MAEMO_5
+    if(!wordListWidget->isVisible()) {
+        int i = ui->centralWidget->layout()->indexOf(welcomeScreenWidget);
+        QBoxLayout* l = (QBoxLayout*)(ui->centralWidget->layout());
+        l->removeWidget(welcomeScreenWidget);
+        l->insertWidget(0, wordListWidget);
+        qDebug()<<"changed";
+    }
+    #endif
+
     //if nothing was found
     if(res.count() == 0) {
         #ifdef Q_WS_MAEMO_5
@@ -195,6 +221,18 @@ void MainWindow::wordListReady() {
 }
 
 void MainWindow::translationsReady() {
+    #ifndef Q_WS_MAEMO_5
+    if(!translationWidget->isVisible()) {
+        int i = ui->centralWidget->layout()->indexOf(welcomeScreenWidget);
+        QBoxLayout* l = (QBoxLayout*)(ui->centralWidget->layout());
+        QSplitter* s = (QSplitter*)((QWidgetItem*)(l->itemAt(0))->widget());
+        s->insertWidget(1,translationWidget);
+        s->setStretchFactor(1, 150);
+        welcomeScreenWidget->deleteLater();
+        qDebug()<<"changed";
+    }
+    #endif
+
     emit showTranslation(backbone->htmls());
 }
 
@@ -426,3 +464,19 @@ void MainWindow::connectMenu() {
     connect(this, SIGNAL(setIdle()),
             this, SLOT(enableMenu()));
 }
+
+
+void MainWindow::showAllBookmarks() {
+    qDebug()<<"asdas";
+}
+
+void MainWindow::connectBookmarksWidget() {
+    connect(bookmarksWidget, SIGNAL(removeAllBookmarks()),
+            backbone, SLOT(removeAllBookmark()));
+
+    connect(bookmarksWidget, SIGNAL(showAllBookmarks()),
+            menu, SLOT(hide()));
+
+    connect(menu, SIGNAL(aboutToHide()),
+            this, SLOT(showAllBookmarks()));
+}