Skip to content

Commit a40202c

Browse files
authored
Merge pull request #4751 from nextcloud/bugfix/unmessify-UnifiedSearchResultNothingFound
Set UnifiedSearchResultNothingFound visibility less messily
2 parents 926256d + 7882e22 commit a40202c

3 files changed

Lines changed: 20 additions & 20 deletions

File tree

src/gui/tray/Window.qml

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ ApplicationWindow {
706706

707707
UnifiedSearchResultNothingFound {
708708
id: unifiedSearchResultNothingFound
709-
visible: false
709+
710710
anchors.top: trayWindowUnifiedSearchInputContainer.bottom
711711
anchors.left: trayWindowMainItem.left
712712
anchors.right: trayWindowMainItem.right
@@ -715,28 +715,11 @@ ApplicationWindow {
715715
text: UserModel.currentUser.unifiedSearchResultsListModel.searchTerm
716716

717717
property bool isSearchRunning: UserModel.currentUser.unifiedSearchResultsListModel.isSearchInProgress
718+
property bool waitingForSearchTermEditEnd: UserModel.currentUser.unifiedSearchResultsListModel.waitingForSearchTermEditEnd
718719
property bool isSearchResultsEmpty: unifiedSearchResultsListView.count === 0
719720
property bool nothingFound: text && isSearchResultsEmpty && !UserModel.currentUser.unifiedSearchResultsListModel.errorString
720721

721-
onIsSearchRunningChanged: {
722-
if (unifiedSearchResultNothingFound.isSearchRunning) {
723-
visible = false;
724-
} else {
725-
if (nothingFound) {
726-
visible = true;
727-
}
728-
}
729-
}
730-
731-
onTextChanged: {
732-
visible = false;
733-
}
734-
735-
onIsSearchResultsEmptyChanged: {
736-
if (!unifiedSearchResultNothingFound.isSearchResultsEmpty) {
737-
visible = false;
738-
}
739-
}
722+
visible: !isSearchRunning && !waitingForSearchTermEditEnd && nothingFound
740723
}
741724

742725
Loader {

src/gui/tray/unifiedsearchresultslistmodel.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ Q_LOGGING_CATEGORY(lcUnifiedSearch, "nextcloud.gui.unifiedsearch", QtInfoMsg)
194194

195195
UnifiedSearchResultsListModel::UnifiedSearchResultsListModel(AccountState *accountState, QObject *parent)
196196
: QAbstractListModel(parent)
197+
, _waitingForSearchTermEditEnd(false)
197198
, _accountState(accountState)
198199
{
199200
}
@@ -280,6 +281,11 @@ QString UnifiedSearchResultsListModel::currentFetchMoreInProgressProviderId() co
280281
return _currentFetchMoreInProgressProviderId;
281282
}
282283

284+
bool UnifiedSearchResultsListModel::waitingForSearchTermEditEnd() const
285+
{
286+
return _waitingForSearchTermEditEnd;
287+
}
288+
283289
void UnifiedSearchResultsListModel::setSearchTerm(const QString &term)
284290
{
285291
if (term == _searchTerm) {
@@ -303,13 +309,17 @@ void UnifiedSearchResultsListModel::setSearchTerm(const QString &term)
303309

304310
if (_unifiedSearchTextEditingFinishedTimer.isActive()) {
305311
_unifiedSearchTextEditingFinishedTimer.stop();
312+
_waitingForSearchTermEditEnd = false;
313+
emit waitingForSearchTermEditEndChanged();
306314
}
307315

308316
if (!_searchTerm.isEmpty()) {
309317
_unifiedSearchTextEditingFinishedTimer.setInterval(searchTermEditingFinishedSearchStartDelay);
310318
connect(&_unifiedSearchTextEditingFinishedTimer, &QTimer::timeout, this,
311319
&UnifiedSearchResultsListModel::slotSearchTermEditingFinished);
312320
_unifiedSearchTextEditingFinishedTimer.start();
321+
_waitingForSearchTermEditEnd = true;
322+
emit waitingForSearchTermEditEndChanged();
313323
}
314324

315325
if (!_results.isEmpty()) {
@@ -367,6 +377,9 @@ void UnifiedSearchResultsListModel::fetchMoreTriggerClicked(const QString &provi
367377

368378
void UnifiedSearchResultsListModel::slotSearchTermEditingFinished()
369379
{
380+
_waitingForSearchTermEditEnd = false;
381+
emit waitingForSearchTermEditEndChanged();
382+
370383
disconnect(&_unifiedSearchTextEditingFinishedTimer, &QTimer::timeout, this,
371384
&UnifiedSearchResultsListModel::slotSearchTermEditingFinished);
372385

src/gui/tray/unifiedsearchresultslistmodel.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class UnifiedSearchResultsListModel : public QAbstractListModel
3838
currentFetchMoreInProgressProviderIdChanged)
3939
Q_PROPERTY(QString errorString READ errorString NOTIFY errorStringChanged)
4040
Q_PROPERTY(QString searchTerm READ searchTerm WRITE setSearchTerm NOTIFY searchTermChanged)
41+
Q_PROPERTY(bool waitingForSearchTermEditEnd READ waitingForSearchTermEditEnd NOTIFY waitingForSearchTermEditEndChanged)
4142

4243
struct UnifiedSearchProvider
4344
{
@@ -77,6 +78,7 @@ class UnifiedSearchResultsListModel : public QAbstractListModel
7778
QString currentFetchMoreInProgressProviderId() const;
7879
QString searchTerm() const;
7980
QString errorString() const;
81+
bool waitingForSearchTermEditEnd() const;
8082

8183
Q_INVOKABLE void resultClicked(const QString &providerId, const QUrl &resourceUrl) const;
8284
Q_INVOKABLE void fetchMoreTriggerClicked(const QString &providerId);
@@ -106,6 +108,7 @@ class UnifiedSearchResultsListModel : public QAbstractListModel
106108
void isSearchInProgressChanged();
107109
void errorStringChanged();
108110
void searchTermChanged();
111+
void waitingForSearchTermEditEndChanged();
109112

110113
public slots:
111114
void setSearchTerm(const QString &term);
@@ -121,6 +124,7 @@ private slots:
121124

122125
QString _searchTerm;
123126
QString _errorString;
127+
bool _waitingForSearchTermEditEnd;
124128

125129
QString _currentFetchMoreInProgressProviderId;
126130

0 commit comments

Comments
 (0)