From c03f47ac241e30cce2c8c77ecd028afb9070fa3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Vr=C3=A1til?= <daniel.vratil@kdab.com> Date: Mon, 23 May 2016 12:21:33 +0200 Subject: [PATCH 64/74] SearchDialog: Always display number of results --- kmail/searchdialog/searchwindow.cpp | 20 ++++++++++++++++++++ kmail/searchdialog/searchwindow.h | 1 + 2 files changed, 21 insertions(+) diff --git a/kmail/searchdialog/searchwindow.cpp b/kmail/searchdialog/searchwindow.cpp index 63baf4590c..263b3842e3 100644 --- a/kmail/searchdialog/searchwindow.cpp +++ b/kmail/searchdialog/searchwindow.cpp @@ -596,7 +596,12 @@ void SearchWindow::searchDone( KJob* job ) new Akonadi::CollectionModifyJob( mFolder, this ); mSearchJob = 0; + Akonadi::CollectionFetchJob *fetch = new Akonadi::CollectionFetchJob(mFolder, Akonadi::CollectionFetchJob::Base, this); + fetch->fetchScope().setIncludeStatistics(true); + connect(fetch, SIGNAL(result(KJob*)), this, SLOT(slotCollectionStatisticsRetrieved(KJob*))); + mUi.mStatusLbl->setText( i18n("Search complete.") ); + createSearchModel(); if ( mCloseRequested ) @@ -609,6 +614,21 @@ void SearchWindow::searchDone( KJob* job ) } } +void SearchWindow::slotCollectionStatisticsRetrieved(KJob *job) +{ + Akonadi::CollectionFetchJob *fetch = qobject_cast<Akonadi::CollectionFetchJob*>(job); + if (!fetch || fetch->error()) { + return; + } + + const Akonadi::Collection::List cols = fetch->collections(); + if (cols.isEmpty()) { + return; + } + + updateCollectionStatistic(cols[0].id(), cols[0].statistics()); +} + void SearchWindow::slotStop() { mUi.mProgressIndicator->stop(); diff --git a/kmail/searchdialog/searchwindow.h b/kmail/searchdialog/searchwindow.h index 986027b8e3..8f52e8c88c 100644 --- a/kmail/searchdialog/searchwindow.h +++ b/kmail/searchdialog/searchwindow.h @@ -138,6 +138,7 @@ private Q_SLOTS: void slotSaveMsg(); void slotSaveAttachments(); void slotPrintMsg(); + void slotCollectionStatisticsRetrieved(KJob *job); /** GUI cleanup after search */ void searchDone( KJob* ); -- 2.14.1