summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2017-05-29 16:24:39 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2017-06-01 09:54:16 +0000
commit838d7589ef1577a6f5bd8eeab60e7c804af69a77 (patch)
tree84281b673de30175cbe542cf98cf4db2ae5d0635 /src
parent180c807b56dc173c34cd34e8f7dd4b20f9ce9a9d (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.cpp101
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();
}
/*!