From ae77eccb397460676b4df8297beaebcc1394faec Mon Sep 17 00:00:00 2001 From: Tobias Markmann <tm@ayena.de> Date: Mon, 23 Apr 2012 12:58:51 +0200 Subject: Explicitly show "No results." if a user search yields to no results on the results page. Resolves: #811 License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php diff --git a/Swift/QtUI/UserSearch/QtUserSearchResultsPage.cpp b/Swift/QtUI/UserSearch/QtUserSearchResultsPage.cpp index bc6933e7..dcd79d2 100644 --- a/Swift/QtUI/UserSearch/QtUserSearchResultsPage.cpp +++ b/Swift/QtUI/UserSearch/QtUserSearchResultsPage.cpp @@ -15,12 +15,23 @@ QtUserSearchResultsPage::QtUserSearchResultsPage() { connect(results_, SIGNAL(clicked(const QModelIndex&)), this, SLOT(emitCompletenessCheck())); connect(results_, SIGNAL(entered(const QModelIndex&)), this, SLOT(emitCompletenessCheck())); results_->setExpandsOnDoubleClick(false); + setNoResults(false); } bool QtUserSearchResultsPage::isComplete() const { return results_->currentIndex().isValid(); } +void QtUserSearchResultsPage::setNoResults(bool noResults) { + if (noResults) { + results_->setEnabled(false); + noResults_->show(); + } else { + results_->setEnabled(true); + noResults_->hide(); + } +} + void QtUserSearchResultsPage::emitCompletenessCheck() { emit completeChanged(); } diff --git a/Swift/QtUI/UserSearch/QtUserSearchResultsPage.h b/Swift/QtUI/UserSearch/QtUserSearchResultsPage.h index 2bb4fa5..ec52bf9 100644 --- a/Swift/QtUI/UserSearch/QtUserSearchResultsPage.h +++ b/Swift/QtUI/UserSearch/QtUserSearchResultsPage.h @@ -16,6 +16,7 @@ namespace Swift { public: QtUserSearchResultsPage(); virtual bool isComplete() const; + void setNoResults(bool noResults); signals: void onUserTriggersContinue(); public slots: diff --git a/Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui b/Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui index ceb15e1..cf99e3f 100644 --- a/Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui +++ b/Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui @@ -14,13 +14,20 @@ <string/> </property> <layout class="QGridLayout" name="layout"> - <item row="0" column="0"> + <item row="1" column="0"> <widget class="QTreeView" name="results_"> <property name="rootIsDecorated"> <bool>false</bool> </property> </widget> </item> + <item row="0" column="0"> + <widget class="QLabel" name="noResults_"> + <property name="text"> + <string>No results.</string> + </property> + </widget> + </item> </layout> </widget> <resources/> diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp index b8a44e5..2b11d02 100644 --- a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp +++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp @@ -253,6 +253,7 @@ void QtUserSearchWindow::setResults(const std::vector<UserSearchResult>& results resultsPage_->results_->setHeaderHidden(true); delete model_; model_ = newModel; + resultsPage_->setNoResults(model_->rowCount() == 0); } void QtUserSearchWindow::setResultsForm(Form::ref results) { @@ -264,6 +265,7 @@ void QtUserSearchWindow::setResultsForm(Form::ref results) { resultsPage_->results_->header()->setResizeMode(QHeaderView::ResizeToContents); delete model_; model_ = newModel; + resultsPage_->setNoResults(model_->rowCount() == 0); } void QtUserSearchWindow::setSelectedService(const JID& jid) { -- cgit v0.10.2-6-g49f6