Fixed gui: search progress bar, result list
[mdictionary] / trunk / src / base / gui / SearchBarWidget.cpp
index afdceb4..b9f674c 100644 (file)
@@ -33,7 +33,6 @@ SearchBarWidget::SearchBarWidget(QWidget *parent) :
 
     initializeUI();
 
-    setMaximumHeight(150);
 
     _isSearching = false;
 
@@ -56,6 +55,10 @@ SearchBarWidget::SearchBarWidget(QWidget *parent) :
             this, SLOT(clearSearchWordToolButtonClicked()));
 
 
+    connect(&delayTimer, SIGNAL(timeout()),
+            this, SLOT(delaySearchTimeout()));
+
+
     searchWordLineEdit->setFocus();
 
     historyPrevToolButton->setEnabled(false);
@@ -81,55 +84,109 @@ QIcon SearchBarWidget::generateIcon(QIcon oryginal, qreal rotation) {
     QIcon newIcon;
     newIcon.addPixmap(p);
 
-    QPainter painter(&p);
-    painter.fillRect(p.rect(), QColor(0,0,0,192));
 
-    newIcon.addPixmap(p, QIcon::Disabled, QIcon::Off);
+    #ifdef Q_WS_MAEMO_5
+        QPainter painter(&p);
+        painter.fillRect(p.rect(), QColor(0,0,0,192));
+
+        newIcon.addPixmap(p, QIcon::Disabled, QIcon::Off);
+    #endif
 
     return newIcon;
 }
 
 
 void SearchBarWidget::initializeUI() {
+
+    #ifdef Q_WS_MAEMO_5
+        setMaximumHeight(150);
+    #else
+        setMaximumHeight(70);
+    #endif
+
+
     horizontalLayout = new QHBoxLayout();
     verticalLayout = new QVBoxLayout();
 
 
     searchPushButton = new QPushButton(tr("Search"));
-    searchPushButton->setMinimumWidth(150);
+    searchPushButton->setMinimumWidth(125);
 
 
     searchWordLineEdit = new QLineEdit();
-    searchWordLineEdit->setMinimumWidth(300);
+    searchWordLineEdit->setMinimumWidth(250);
 
+    #ifndef Q_WS_MAEMO_5
+        searchWordLineEdit->setMinimumHeight(
+                searchWordLineEdit->sizeHint().height()*3/2);
+    #endif
 
 
     //create layout for lineEdit to have clear button on it
-    QHBoxLayout* lineEditLayout = new QHBoxLayout;
+    QHBoxLayout* lineEditLayout = new QHBoxLayout();
     searchWordLineEdit->setLayout(lineEditLayout);
 
 
     clearSearchWordToolButton = new QToolButton();
-    clearSearchWordToolButton->setIcon(QIcon::fromTheme("general_stop"));
-    //tool buttons will have size 2 times smaller
-    clearSearchWordToolButton->setMaximumSize(
-            clearSearchWordToolButton->sizeHint().width()/2,
-            clearSearchWordToolButton->sizeHint().height()/2);
+    #ifdef Q_WS_MAEMO_5
+        clearSearchWordToolButton->setIcon(QIcon::fromTheme("general_stop"));
+        //tool buttons will have size 2 times smaller
+        clearSearchWordToolButton->setMaximumSize(
+                clearSearchWordToolButton->sizeHint().height()/2,
+                clearSearchWordToolButton->sizeHint().height()/2);
+        lineEditLayout->setContentsMargins(0,0,10,0);
+    #else
+        clearSearchWordToolButton->setIcon(QIcon::fromTheme("edit-clear"));
+        clearSearchWordToolButton->setMinimumSize(
+                searchWordLineEdit->sizeHint().height()*1.2,
+                searchWordLineEdit->sizeHint().height()*1.2);
+        lineEditLayout->setContentsMargins(0,0,5,0);
+    #endif
 
 
     historyNextToolButton = new QToolButton();
-    historyNextToolButton->setIcon(
-            generateIcon(QIcon::fromTheme("general_forward")));
+    #ifdef Q_WS_MAEMO_5
+        historyNextToolButton->setIcon(
+                generateIcon(QIcon::fromTheme("general_forward")));
+    #else
+        historyNextToolButton->setIcon(
+                generateIcon(QIcon::fromTheme("go-next")));
+    #endif
+
+
 
     historyPrevToolButton = new QToolButton();
-    historyPrevToolButton->setIcon(
-            generateIcon(QIcon::fromTheme("general_back")));
+    #ifdef Q_WS_MAEMO_5
+        historyPrevToolButton->setIcon(
+                generateIcon(QIcon::fromTheme("general_back")));
+    #else
+        historyPrevToolButton->setIcon(
+                generateIcon(QIcon::fromTheme("go-previous")));
+    #endif
 
-    historyShowToolButton = new QToolButton();
-    historyShowToolButton->setIcon(
-            generateIcon(QIcon::fromTheme("general_back"), 90));
 
 
+    historyShowToolButton = new QToolButton();
+    #ifdef Q_WS_MAEMO_5
+        historyShowToolButton->setIcon(
+                generateIcon(QIcon::fromTheme("general_back"), 90));
+    #else
+        historyShowToolButton->setIcon(
+                generateIcon(QIcon::fromTheme("go-up")));
+    #endif
+
+    /*fullScreenToolButton = new QToolButton();
+    #ifdef Q_WS_MAEMO_5
+        fullScreenToolButton->setIcon(
+                generateIcon(QIcon::fromTheme("general_fullsize")));
+    #else
+        fullScreenToolButton->setIcon(
+                generateIcon(QIcon::fromTheme("view-fullscreen")));
+        fullScreenToolButton->setMinimumSize(
+                fullScreenToolButton->sizeHint().height()*2,
+                fullScreenToolButton->sizeHint().height()*2);
+    #endif*/
+
 
     searchingProgressBar = new QProgressBar();
     //progress bar have minimum and maximum values set to 0, which will effect
@@ -137,7 +194,9 @@ void SearchBarWidget::initializeUI() {
     searchingProgressBar->setMinimum(0);
     searchingProgressBar->setMaximum(0);
     searchingProgressBar->hide();
-    searchingProgressBar->setMaximumHeight(50);
+    #ifdef Q_WS_MAEMO_5
+        searchingProgressBar->setMaximumHeight(50);
+    #endif
 
 
     setLayout(verticalLayout);
@@ -150,10 +209,11 @@ void SearchBarWidget::initializeUI() {
     horizontalLayout->addWidget(historyPrevToolButton);
     horizontalLayout->addWidget(historyShowToolButton);
     horizontalLayout->addWidget(historyNextToolButton);
+   // horizontalLayout->addWidget(fullScreenToolButton);
 
     //adding clear toolButton to textEdit with right alignment
-    lineEditLayout->addWidget(clearSearchWordToolButton, 0,
-                              Qt::AlignRight | Qt::AlignVCenter);
+    lineEditLayout->addWidget(clearSearchWordToolButton, 0, Qt::AlignRight);
+
 
     verticalLayout->addLayout(horizontalLayout);
 }
@@ -176,6 +236,27 @@ void SearchBarWidget::search(QString word) {
     }
 }
 
+void SearchBarWidget::searchDelay(QString word) {
+    if(!_isSearching && !word.isEmpty()) {
+        searchWordLineEdit->setText(word);
+
+
+        if(delayTimer.isActive()) {
+            delayTimer.stop();
+        }
+
+        delayString = word;
+        delayTimer.start(500);
+    }
+}
+
+void SearchBarWidget::delaySearchTimeout() {
+    delayTimer.stop();
+    if(!_isSearching) {
+        emit searchForTranslations(delayString);
+    }
+}
+
 void SearchBarWidget::setEnabled(bool enabled) {
     searchWordLineEdit->setEnabled(enabled);