Fix random error when remove word from bookmark. Fix show all bookmark feature.
[mdictionary] / src / mdictionary / gui / MainWindow.cpp
index 67c733d..f8582dd 100644 (file)
 
 *******************************************************************************/
 
-//! \file MainWindow.cpp
-//! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+/*! \file MainWindow.cpp
+    \brief Implements interface for GUI
+
+    \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+*/
 
 #include "MainWindow.h"
 #include <QtGui>
@@ -113,7 +116,8 @@ void MainWindow::initializeSearchWidgets() {
         splitter->setStretchFactor(1, 150);
 
         mainLayout->addWidget(splitter, 1);
-        mainLayout->addWidget(searchBarWidget, 0, Qt::AlignBottom);
+
+        mainLayout->addWidget(searchBarWidget,0, Qt::AlignBottom);
     #endif
 }
 
@@ -133,15 +137,15 @@ void MainWindow::initializeMenu() {
     connect(menuWidget, SIGNAL(setApplicationMenu(QWidget*)),
             notifyManager, SLOT(setMenu(QWidget*)));
 #else
-    dictionariesAction = menuBar->addAction(tr("Dictionaries"));
+    dictionariesAction = menuBar->addAction(tr("&Dictionaries"));
     connect(dictionariesAction, SIGNAL(triggered()),
             dictManagerWidget, SLOT(show()));
 
-    settingsAction = menuBar->addAction(tr("Settings"));
+    settingsAction = menuBar->addAction(tr("&Settings"));
     connect(settingsAction, SIGNAL(triggered()),
             settingsWidget, SLOT(show()));
 
-    QMenu* m = menuBar->addMenu(tr("Bookmarks"));
+    QMenu* m = menuBar->addMenu(tr("&Bookmarks"));
     bookmarksShowAllAction = new QAction(tr("Show all"), m);
 
     bookmarksRemoveAllAction = new QAction(tr("Remove all"), m);
@@ -149,7 +153,7 @@ void MainWindow::initializeMenu() {
     m->addAction(bookmarksShowAllAction);
     m->addAction(bookmarksRemoveAllAction);
 
-    aboutAction = menuBar->addAction(tr("About"));
+    aboutAction = menuBar->addAction(tr("&About"));
     connect(aboutAction, SIGNAL(triggered()),
             aboutWidget, SLOT(show()));
 
@@ -231,6 +235,7 @@ void MainWindow::wordListReady() {
             setExactSearch(false);
         }
     }
+    wordListWidget->setFocus();
 }
 
 bool MainWindow::checkExactSearch(
@@ -254,7 +259,8 @@ void MainWindow::translationsReady() {
         hideWelcomeScreen();
     #endif
 
-    Q_EMIT showTranslation(backbone->htmls());
+    Q_EMIT showTranslation(backbone->xmls());
+    wordListWidget->setFocus();
     #ifdef Q_WS_MAEMO_5
         notifyManager->screenChanged();
     #endif
@@ -288,10 +294,16 @@ QHash<CommonDictInterface*, bool> MainWindow::getDictionaries() {
     return backbone->getDictionaries();
 }
 
-
+/**/
 void MainWindow::search(QString word) {
     setExactSearch(false);
     searchBarWidget->search(word);
+    #ifdef Q_WS_MAEMO_5
+    if(translationWidget->isVisible()) {
+            translationWidget->hide();
+            update();
+        }
+    #endif
 }
 
 void MainWindow::searchExact(QString word) {
@@ -359,16 +371,11 @@ void MainWindow::enableMenu() {
 }
 
 void MainWindow::showHistory(QPoint p) {
-
-    HistoryListDialog historyDialog(backbone->history()->list(), searchBarWidget);
-
+    HistoryListDialog historyDialog(backbone->history()->list(), this );// searchBarWidget);
     #ifndef Q_WS_MAEMO_5
-        QPoint newPos = mapFromGlobal(p);
-        newPos.setY(searchBarWidget->pos().y() -
-                    historyDialog.sizeHint().height());
-        newPos.setX(width() - historyDialog.sizeHint().width());
-
-        historyDialog.move(newPos);
+        p.setX(p.x() - historyDialog.sizeHint().width() + 5);
+        p.setY(p.y() - historyDialog.sizeHint().height()- 10); //- 80);
+        historyDialog.move(p);
     #endif
 
     if(historyDialog.exec() == QDialog::Accepted) {
@@ -416,7 +423,7 @@ void MainWindow::connectBackbone() {
             backbone, SLOT(search(QString)));
 
     connect(this, SIGNAL(searchTranslations(QList<Translation*>)),
-            backbone, SLOT(searchHtml(QList<Translation*>)));
+            backbone, SLOT(searchXml(QList<Translation*>)));
 
     connect(this, SIGNAL(stopSearching()),
             backbone, SLOT(stopSearching()));
@@ -437,14 +444,14 @@ void MainWindow::connectBackbone() {
     connect(backbone, SIGNAL(ready()),
             this, SIGNAL(setIdle()));
 
-    connect(backbone, SIGNAL(htmlReady()),
+    connect(backbone, SIGNAL(xmlReady()),
             this, SIGNAL(setIdle()));
 
 
     connect(backbone, SIGNAL(ready()),
             this, SLOT(wordListReady()));
 
-    connect(backbone, SIGNAL(htmlReady()),
+    connect(backbone, SIGNAL(xmlReady()),
             this, SLOT(translationsReady()));
 
     connect(backbone, SIGNAL(searchCanceled()),
@@ -455,6 +462,16 @@ void MainWindow::connectBackbone() {
 
     connect(backbone, SIGNAL(closeOk()),
             this, SLOT(close()));
+
+    connect(backbone, SIGNAL(bookmarkMode()),
+            this, SIGNAL(bookmarkMode()));
+
+
+    //connect(wordListWidget, SIGNAL(addBookmark(QList<Translation*>)),
+    //       this, SIGNAL(setBusy()));
+
+    //connect(backbone, SIGNAL(bookmarkReady()),
+    //        this, SIGNAL(setIdle()));
 }
 
 void MainWindow::connectSearchBar() {
@@ -504,6 +521,9 @@ void MainWindow::connectWordList() {
     connect(this, SIGNAL(setIdle()),
             wordListWidget, SLOT(unlockList()));
 
+    connect(this, SIGNAL(bookmarkMode()),
+            wordListWidget, SLOT(bookmarkModeActive()));
+
     connect(wordListWidget, SIGNAL(addBookmark(QList<Translation*>)),
             backbone, SLOT(addBookmark(QList<Translation*>)));
 
@@ -518,12 +538,14 @@ void MainWindow::connectTranslationWidget() {
      #ifdef Q_WS_MAEMO_5
         connect(translationWidget, SIGNAL(search(QString)),
                 this, SLOT(search(QString)));
+
+        connect(translationWidget, SIGNAL(notify(Notify::NotifyType, QString)),
+                this, SLOT(showNotification(Notify::NotifyType,QString)));
     #else
         connect(translationWidget, SIGNAL(search(QString)),
                 this, SLOT(searchExact(QString)));
     #endif
 
-
 }
 
 void MainWindow::connectDictManager() {
@@ -584,6 +606,4 @@ void MainWindow::removeBookmarks() {
         backbone->removeAllBookmarks();
         ((WordListWidget*)wordListWidget)->clear();
     }
-
-
 }