Updated comments
[mdictionary] / trunk / src / base / gui / SearchBarWidget.cpp
index ba69183..82ccd2e 100644 (file)
@@ -33,7 +33,6 @@ SearchBarWidget::SearchBarWidget(QWidget *parent) :
 
     initializeUI();
 
-    setMaximumHeight(150);
 
     _isSearching = false;
 
@@ -56,8 +55,15 @@ SearchBarWidget::SearchBarWidget(QWidget *parent) :
             this, SLOT(clearSearchWordToolButtonClicked()));
 
 
+    connect(&delayTimer, SIGNAL(timeout()),
+            this, SLOT(delaySearchTimeout()));
+
+
     searchWordLineEdit->setFocus();
 
+    historyPrevToolButton->setEnabled(false);
+    historyNextToolButton->setEnabled(false);
+    historyShowToolButton->setEnabled(false);
     setEnabled(true);
 }
 
@@ -78,27 +84,45 @@ 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(100);
+    #endif
+
+
     horizontalLayout = new QHBoxLayout();
     verticalLayout = new QVBoxLayout();
 
 
     searchPushButton = new QPushButton(tr("Search"));
-    searchPushButton->setMinimumWidth(150);
-
+    searchPushButton->setMinimumWidth(125);
+    #ifndef Q_WS_MAEMO_5
+        searchPushButton->setMinimumHeight(
+                searchPushButton->sizeHint().height()*2);
+    #endif
 
     searchWordLineEdit = new QLineEdit();
-    searchWordLineEdit->setMinimumWidth(300);
+    searchWordLineEdit->setMinimumWidth(250);
 
+    #ifndef Q_WS_MAEMO_5
+        searchWordLineEdit->setMinimumHeight(
+                searchWordLineEdit->sizeHint().height()*2);
+    #endif
 
 
     //create layout for lineEdit to have clear button on it
@@ -107,25 +131,71 @@ void SearchBarWidget::initializeUI() {
 
 
     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);
+    #else
+        clearSearchWordToolButton->setIcon(QIcon::fromTheme("edit-clear"));
+        clearSearchWordToolButton->setMinimumSize(
+                clearSearchWordToolButton->sizeHint().height(),
+                clearSearchWordToolButton->sizeHint().height());
+    #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")));
+        historyNextToolButton->setMinimumSize(
+                clearSearchWordToolButton->sizeHint().height()*2,
+                clearSearchWordToolButton->sizeHint().height()*2);
+    #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")));
+        historyPrevToolButton->setMinimumSize(
+                clearSearchWordToolButton->sizeHint().height()*2,
+                clearSearchWordToolButton->sizeHint().height()*2);
+    #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")));
+        historyShowToolButton->setMinimumSize(
+                clearSearchWordToolButton->sizeHint().height()*2,
+                clearSearchWordToolButton->sizeHint().height()*2);
+    #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();
@@ -134,7 +204,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);
@@ -147,6 +219,7 @@ 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,
@@ -173,6 +246,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);
 
@@ -206,12 +300,9 @@ void SearchBarWidget::clearSearchWordToolButtonClicked() {
 }
 
 
-bool SearchBarWidget::isSearching() const {
-    return _isSearching;
-}
 
 void SearchBarWidget::updateHistoryButtons(bool prev, bool next, bool list) {
-    if(!isSearching()) {
+    if(!_isSearching) {
         historyPrevToolButton->setEnabled(prev);
         historyNextToolButton->setEnabled(next);
         historyShowToolButton->setEnabled(list);