diff options
author | Tobias Markmann <tm@ayena.de> | 2012-04-23 10:58:51 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-04-23 12:27:54 (GMT) |
commit | ae77eccb397460676b4df8297beaebcc1394faec (patch) | |
tree | d7cef13176863f4dbee56d5e07e4df5438903ddf /Swift | |
parent | 39d46fb62ef01c3394ec0b453229f8d703f75153 (diff) | |
download | swift-contrib-ae77eccb397460676b4df8297beaebcc1394faec.zip swift-contrib-ae77eccb397460676b4df8297beaebcc1394faec.tar.bz2 |
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
Diffstat (limited to 'Swift')
-rw-r--r-- | Swift/QtUI/UserSearch/QtUserSearchResultsPage.cpp | 11 | ||||
-rw-r--r-- | Swift/QtUI/UserSearch/QtUserSearchResultsPage.h | 1 | ||||
-rw-r--r-- | Swift/QtUI/UserSearch/QtUserSearchResultsPage.ui | 9 | ||||
-rw-r--r-- | Swift/QtUI/UserSearch/QtUserSearchWindow.cpp | 2 |
4 files changed, 22 insertions, 1 deletions
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 @@ -9,20 +9,31 @@ namespace Swift { QtUserSearchResultsPage::QtUserSearchResultsPage() { setupUi(this); connect(results_, SIGNAL(activated(const QModelIndex&)), this, SLOT(emitCompletenessCheck())); connect(results_, SIGNAL(activated(const QModelIndex&)), this, SIGNAL(onUserTriggersContinue())); 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 @@ -10,15 +10,16 @@ #include <Swift/QtUI/UserSearch/ui_QtUserSearchResultsPage.h> namespace Swift { class QtUserSearchResultsPage : public QWizardPage, public Ui::QtUserSearchResultsPage { Q_OBJECT public: QtUserSearchResultsPage(); virtual bool isComplete() const; + void setNoResults(bool noResults); signals: void onUserTriggersContinue(); public slots: void emitCompletenessCheck(); }; } 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 @@ -8,21 +8,28 @@ <y>0</y> <width>400</width> <height>300</height> </rect> </property> <property name="windowTitle"> <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/> <connections/> </ui> 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 @@ -247,29 +247,31 @@ void QtUserSearchWindow::prepopulateJIDAndName(const JID& jid, const std::string void QtUserSearchWindow::setResults(const std::vector<UserSearchResult>& results) { UserSearchModel *newModel = new UserSearchModel(); newModel->setResults(results); resultsPage_->results_->setModel(newModel); resultsPage_->results_->setItemDelegate(delegate_); resultsPage_->results_->setHeaderHidden(true); delete model_; model_ = newModel; + resultsPage_->setNoResults(model_->rowCount() == 0); } void QtUserSearchWindow::setResultsForm(Form::ref results) { QtFormResultItemModel *newModel = new QtFormResultItemModel(this); newModel->setForm(results); resultsPage_->results_->setModel(newModel); resultsPage_->results_->setItemDelegate(new QItemDelegate()); resultsPage_->results_->setHeaderHidden(false); resultsPage_->results_->header()->setResizeMode(QHeaderView::ResizeToContents); delete model_; model_ = newModel; + resultsPage_->setNoResults(model_->rowCount() == 0); } void QtUserSearchWindow::setSelectedService(const JID& jid) { myServer_ = jid; } void QtUserSearchWindow::clearForm() { fieldsPage_->fetchingThrobber_->show(); fieldsPage_->fetchingThrobber_->movie()->start(); |