diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2017-05-29 16:24:39 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2017-06-01 09:54:16 +0000 |
commit | 838d7589ef1577a6f5bd8eeab60e7c804af69a77 (patch) | |
tree | 84281b673de30175cbe542cf98cf4db2ae5d0635 /src | |
parent | 180c807b56dc173c34cd34e8f7dd4b20f9ce9a9d (diff) |
Fix enablement of search result widget arrows
Enable also the search result label.
Change-Id: Iea35c30eaef0af27302f036f987de757b98379b8
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/assistant/help/qhelpsearchresultwidget.cpp | 101 |
1 files changed, 25 insertions, 76 deletions
diff --git a/src/assistant/help/qhelpsearchresultwidget.cpp b/src/assistant/help/qhelpsearchresultwidget.cpp index 4d975e38b..e0ca3cc08 100644 --- a/src/assistant/help/qhelpsearchresultwidget.cpp +++ b/src/assistant/help/qhelpsearchresultwidget.cpp @@ -121,88 +121,39 @@ class QHelpSearchResultWidgetPrivate : public QObject Q_OBJECT private slots: - void setResults(int hitsCount) - { - if (!searchEngine.isNull()) { - showFirstResultPage(); - updateNextButtonState((hitsCount > 20) ? true : false); - } - } - - void showNextResultPage() + void showFirstResultPage() { - if (!searchEngine.isNull() - && resultLastToShow < searchEngine->searchResultCount()) { - resultLastToShow += 20; - resultFirstToShow += 20; - - resultTextBrowser->showResultPage(searchEngine->searchResults(resultFirstToShow, - resultLastToShow), isIndexing); - if (resultLastToShow >= searchEngine->searchResultCount()) - updateNextButtonState(false); - } + if (!searchEngine.isNull()) + resultFirstToShow = 0; updateHitRange(); } void showLastResultPage() { - if (!searchEngine.isNull()) { - resultLastToShow = searchEngine->searchResultCount(); - resultFirstToShow = resultLastToShow - (resultLastToShow % 20); - - if (resultFirstToShow == resultLastToShow) - resultFirstToShow -= 20; - - resultTextBrowser->showResultPage(searchEngine->searchResults(resultFirstToShow, - resultLastToShow), isIndexing); - updateNextButtonState(false); - } + if (!searchEngine.isNull()) + resultFirstToShow = (searchEngine->searchResultCount() - 1) / ResultsRange * ResultsRange; updateHitRange(); } - void showFirstResultPage() + void showPreviousResultPage() { if (!searchEngine.isNull()) { - resultLastToShow = 20; - resultFirstToShow = 0; - - resultTextBrowser->showResultPage(searchEngine->searchResults(resultFirstToShow, - resultLastToShow), isIndexing); - updatePrevButtonState(false); + resultFirstToShow -= ResultsRange; + if (resultFirstToShow < 0) + resultFirstToShow = 0; } updateHitRange(); } - void showPreviousResultPage() + void showNextResultPage() { - if (!searchEngine.isNull()) { - int count = resultLastToShow % 20; - if (count == 0 || resultLastToShow != searchEngine->searchResultCount()) - count = 20; - - resultLastToShow -= count; - resultFirstToShow = resultLastToShow - 20; - - resultTextBrowser->showResultPage(searchEngine->searchResults(resultFirstToShow, - resultLastToShow), isIndexing); - if (resultFirstToShow == 0) - updatePrevButtonState(false); + if (!searchEngine.isNull() + && resultFirstToShow + ResultsRange < searchEngine->searchResultCount()) { + resultFirstToShow += ResultsRange; } updateHitRange(); } - void updatePrevButtonState(bool state = true) - { - firstResultPage->setEnabled(state); - previousResultPage->setEnabled(state); - } - - void updateNextButtonState(bool state = true) - { - nextResultPage->setEnabled(state); - lastResultPage->setEnabled(state); - } - void indexingStarted() { isIndexing = true; @@ -250,11 +201,18 @@ private: if (!searchEngine.isNull()) { count = searchEngine->searchResultCount(); if (count > 0) { + last = qMin(resultFirstToShow + ResultsRange, count); first = resultFirstToShow + 1; - last = resultLastToShow > count ? count : resultLastToShow; } + resultTextBrowser->showResultPage(searchEngine->searchResults(resultFirstToShow, + last), isIndexing); } + hitsLabel->setText(QHelpSearchResultWidget::tr("%1 - %2 of %n Hits", 0, count).arg(first).arg(last)); + firstResultPage->setEnabled(resultFirstToShow); + previousResultPage->setEnabled(resultFirstToShow); + lastResultPage->setEnabled(count - last); + nextResultPage->setEnabled(count - last); } private: @@ -264,7 +222,8 @@ private: QResultWidget *resultTextBrowser = nullptr; - int resultLastToShow = 20; + static const int ResultsRange = 20; + int resultFirstToShow = 0; bool isIndexing = false; @@ -313,7 +272,6 @@ QHelpSearchResultWidget::QHelpSearchResultWidget(QHelpSearchEngine *engine) QString::fromUtf8(":/qt-project.org/assistant/images/1leftarrow.png"))); d->hitsLabel = new QLabel(tr("0 - 0 of 0 Hits"), this); - d->hitsLabel->setEnabled(false); hBoxLayout->addWidget(d->hitsLabel); d->hitsLabel->setAlignment(Qt::AlignCenter); d->hitsLabel->setMinimumSize(QSize(150, d->hitsLabel->height())); @@ -344,17 +302,8 @@ QHelpSearchResultWidget::QHelpSearchResultWidget(QHelpSearchEngine *engine) connect(d->previousResultPage, &QAbstractButton::clicked, d, &QHelpSearchResultWidgetPrivate::showPreviousResultPage); - connect(d->firstResultPage, &QAbstractButton::clicked, - d, &QHelpSearchResultWidgetPrivate::updateNextButtonState); - connect(d->previousResultPage, &QAbstractButton::clicked, - d, &QHelpSearchResultWidgetPrivate::updateNextButtonState); - connect(d->nextResultPage, &QAbstractButton::clicked, - d, &QHelpSearchResultWidgetPrivate::updatePrevButtonState); - connect(d->lastResultPage, &QAbstractButton::clicked, - d, &QHelpSearchResultWidgetPrivate::updatePrevButtonState); - connect(engine, &QHelpSearchEngine::searchingFinished, - d, &QHelpSearchResultWidgetPrivate::setResults); + d, &QHelpSearchResultWidgetPrivate::showFirstResultPage); } /*! \reimp @@ -362,7 +311,7 @@ QHelpSearchResultWidget::QHelpSearchResultWidget(QHelpSearchEngine *engine) void QHelpSearchResultWidget::changeEvent(QEvent *event) { if (event->type() == QEvent::LanguageChange) - d->setResults(d->searchEngine->searchResultCount()); + d->updateHitRange(); } /*! |