Added welcome screen
authorMateusz Półrola <mateusz.polrola@comarch.pl>
Wed, 18 Aug 2010 10:18:30 +0000 (12:18 +0200)
committerMateusz Półrola <mateusz.polrola@comarch.pl>
Wed, 18 Aug 2010 10:18:30 +0000 (12:18 +0200)
trunk/src/base/backbone/backbone.h
trunk/src/base/base.pro
trunk/src/base/gui/MainWindow.cpp
trunk/src/base/gui/MainWindow.h
trunk/src/base/gui/MenuTabWidget.cpp
trunk/src/base/gui/MenuWidget.cpp
trunk/src/base/gui/MenuWidget.h
trunk/src/base/gui/SettingsWidget.cpp
trunk/src/base/gui/WordListWidget.cpp

index fd61fd4..947dcbe 100644 (file)
@@ -190,7 +190,7 @@ public Q_SLOTS:
 
    /*! \return list of all bookmarks
      */
-   QList<Translation*> getBookmarks() {
+   QList<Translation*> bookmarks() {
        return _bookmarksResult;
    }
 
index 4c6b86e..8d9d258 100644 (file)
@@ -35,7 +35,9 @@ SOURCES += gui/main.cpp\
     gui/HistoryListDialog.cpp \
     gui/WordListProxyStyle.cpp \
     backbone/Bookmarks.cpp \
-    gui/SettingsWidget.cpp
+    gui/SettingsWidget.cpp \
+    gui/BookmarksWidget.cpp \
+    gui/WelcomeScreenWidget.cpp
 
 HEADERS  += gui/MainWindow.h \
     gui/SearchBarWidget.h \
@@ -56,7 +58,9 @@ HEADERS  += gui/MainWindow.h \
     gui/WordListProxyStyle.h \
     backbone/Bookmarks.h \
     backbone/BookmarkTranslations.h \
-    gui/SettingsWidget.h
+    gui/SettingsWidget.h \
+    gui/BookmarksWidget.h \
+    gui/WelcomeScreenWidget.h
 
 FORMS    += gui/MainWindow.ui
 
index b7622ce..a13f93c 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,12 +100,18 @@ void MainWindow::initializeUI() {
     settingsWidget = new SettingsWidget(this);
     settingsWidget->hide();
 
+    bookmarksWidget = new BookmarksWidget(this);
+    bookmarksWidget->hide();
+
+    menu = new QMenu(this);
     #ifdef Q_WS_MAEMO_5
         menuWidget = new MenuWidget(this);
         menuWidget->addSubMenu(tr("Settings"), settingsWidget);
         menuWidget->addSubMenu(tr("Dictionaries"), dictManagerWidget);
+        menuWidget->addSubMenu(tr("Bookmarks"), bookmarksWidget);
         menuWidget->addSubMenu(tr("About"), new QPushButton("About"));
-        ui->menuBar->addAction(menuWidget);
+        menu->addAction(menuWidget);
+        ui->menuBar->addMenu(menu);
     #else
         dictionariesAction = ui->menuBar->addAction(tr("Dictionaries"));
         connect(dictionariesAction, SIGNAL(triggered()),
@@ -108,6 +120,10 @@ void MainWindow::initializeUI() {
         settingsAction = ui->menuBar->addAction(tr("Settings"));
         connect(settingsAction, SIGNAL(triggered()),
                 settingsWidget, SLOT(show()));
+
+        bookmarksAction = ui->menuBar->addAction(tr("Bookmarks"));
+        connect(bookmarksAction, SIGNAL(triggered()),
+                bookmarksWidget, SLOT(show()));
     #endif
 
 }
@@ -135,6 +151,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
@@ -186,6 +212,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());
 }
 
@@ -417,3 +455,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()));
+}
index 0af6159..879b4f3 100644 (file)
@@ -36,6 +36,8 @@
 #include "DictManagerWidget.h"
 #include "SettingsWidget.h"
 #include "HistoryListDialog.h"
+#include "BookmarksWidget.h"
+#include "WelcomeScreenWidget.h"
 
 namespace Ui {
     class MainWindow;
@@ -171,6 +173,9 @@ private Q_SLOTS:
     void breakSearching();
 
 
+    void showAllBookmarks();
+
+
 protected:
     /*! When user wants to close application, we first sends signal to stop all
         ongoing searches.
@@ -186,16 +191,19 @@ private:
 
 
     SearchBarWidget* searchBarWidget;
-    TranslationWidget* translationWidget;
-    WordListWidget* wordListWidget;
+    QWidget* translationWidget;
+    QWidget* wordListWidget;
     MenuWidget* menuWidget;
+    QMenu* menu;
     DictManagerWidget* dictManagerWidget;
     SettingsWidget* settingsWidget;
+    BookmarksWidget* bookmarksWidget;
+    QWidget* welcomeScreenWidget;
 
     #ifndef Q_WS_MAEMO_5
         QSplitter* splitter;
         QAction* dictionariesAction;
-        //QAction* edit;
+        QAction* bookmarksAction;
         QAction* settingsAction;
         //QAction* aboutAction;
     #endif
@@ -210,6 +218,7 @@ private:
     void connectTranslationWidget();
     void connectDictManager();
     void connectMenu();
+    void connectBookmarksWidget();
 };
 
 #endif // MAINWINDOW_H
index 3f90967..0b52973 100644 (file)
@@ -33,4 +33,7 @@ MenuTabWidget::MenuTabWidget(QWidget *parent) :
 void MenuTabWidget::hideEvent(QHideEvent *e) {
     //just set parent to null, and allow event to by handled by default handler
     setParent(NULL);
+
+
+    QTabWidget::hideEvent(e);
 }
index af8cacd..cbf8138 100644 (file)
@@ -63,4 +63,9 @@ QWidget* MenuWidget::createWidget(QWidget *) {
     it parent to NULL and prevent it from delete, so we can still use this
     widget*/
     return tabWidget;
+
+}
+
+void MenuWidget::hideMenu() {
+    tabWidget->hide();
 }
index 58f4b96..fafc63b 100644 (file)
@@ -51,6 +51,9 @@ public:
     */
     void removeSubMenu(QString title);
 
+public Q_SLOTS:
+    void hideMenu();
+
 protected:
     MenuTabWidget* tabWidget;
     QWidget* createWidget(QWidget *parent);
index 8f3b218..ddfec75 100644 (file)
@@ -45,6 +45,9 @@ SettingsWidget::SettingsWidget(GUIInterface *parent) :
     spinBoxesFormLayout->addRow(tr("History size"),
                                 historySizeSpinBox);
 
+    searchResultSizeSpinBox->setMinimum(1);
+    historySizeSpinBox->setMaximum(1);
+
     #ifdef Q_WS_MAEMO_5
         verticalLayout->addSpacing(20);
     #endif
@@ -61,6 +64,8 @@ SettingsWidget::SettingsWidget(GUIInterface *parent) :
     verticalLayout->addWidget(searchInDictionariesCheckBox);
     verticalLayout->addWidget(searchInBookmarksCheckBox);
 
+
+
     #ifndef Q_WS_MAEMO_5
         setMinimumWidth(250);
         setMaximumWidth(250);
index 9177dfb..df8902c 100644 (file)
@@ -93,6 +93,7 @@ void WordListWidget::showSearchResults(
     }
 
     resizeColumns();
+    model->sort(0);
 }
 
 void WordListWidget::wordClicked(QModelIndex index) {
@@ -123,6 +124,11 @@ void WordListWidget::mouseReleaseEvent(QMouseEvent *event) {
 
     QModelIndex index = indexAt(event->pos());
     if(!index.isValid()) return;
+    if(selectedIndexes().count() == 0) return;
+
+    if(selectedIndexes().at(0) != index && selectedIndexes().at(1) != index)
+        return;
+
     int c = index.column();
     if(c==0)
         wordClicked(index);