Set UnifiedSearchResultNothingFound visibility less messily

Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
This commit is contained in:
Claudio Cambra 2022-07-18 16:27:04 +02:00
parent 926256df97
commit 7882e224fd
3 changed files with 20 additions and 20 deletions

View File

@ -706,7 +706,7 @@ ApplicationWindow {
UnifiedSearchResultNothingFound {
id: unifiedSearchResultNothingFound
visible: false
anchors.top: trayWindowUnifiedSearchInputContainer.bottom
anchors.left: trayWindowMainItem.left
anchors.right: trayWindowMainItem.right
@ -715,28 +715,11 @@ ApplicationWindow {
text: UserModel.currentUser.unifiedSearchResultsListModel.searchTerm
property bool isSearchRunning: UserModel.currentUser.unifiedSearchResultsListModel.isSearchInProgress
property bool waitingForSearchTermEditEnd: UserModel.currentUser.unifiedSearchResultsListModel.waitingForSearchTermEditEnd
property bool isSearchResultsEmpty: unifiedSearchResultsListView.count === 0
property bool nothingFound: text && isSearchResultsEmpty && !UserModel.currentUser.unifiedSearchResultsListModel.errorString
onIsSearchRunningChanged: {
if (unifiedSearchResultNothingFound.isSearchRunning) {
visible = false;
} else {
if (nothingFound) {
visible = true;
}
}
}
onTextChanged: {
visible = false;
}
onIsSearchResultsEmptyChanged: {
if (!unifiedSearchResultNothingFound.isSearchResultsEmpty) {
visible = false;
}
}
visible: !isSearchRunning && !waitingForSearchTermEditEnd && nothingFound
}
Loader {

View File

@ -194,6 +194,7 @@ Q_LOGGING_CATEGORY(lcUnifiedSearch, "nextcloud.gui.unifiedsearch", QtInfoMsg)
UnifiedSearchResultsListModel::UnifiedSearchResultsListModel(AccountState *accountState, QObject *parent)
: QAbstractListModel(parent)
, _waitingForSearchTermEditEnd(false)
, _accountState(accountState)
{
}
@ -280,6 +281,11 @@ QString UnifiedSearchResultsListModel::currentFetchMoreInProgressProviderId() co
return _currentFetchMoreInProgressProviderId;
}
bool UnifiedSearchResultsListModel::waitingForSearchTermEditEnd() const
{
return _waitingForSearchTermEditEnd;
}
void UnifiedSearchResultsListModel::setSearchTerm(const QString &term)
{
if (term == _searchTerm) {
@ -303,6 +309,8 @@ void UnifiedSearchResultsListModel::setSearchTerm(const QString &term)
if (_unifiedSearchTextEditingFinishedTimer.isActive()) {
_unifiedSearchTextEditingFinishedTimer.stop();
_waitingForSearchTermEditEnd = false;
emit waitingForSearchTermEditEndChanged();
}
if (!_searchTerm.isEmpty()) {
@ -310,6 +318,8 @@ void UnifiedSearchResultsListModel::setSearchTerm(const QString &term)
connect(&_unifiedSearchTextEditingFinishedTimer, &QTimer::timeout, this,
&UnifiedSearchResultsListModel::slotSearchTermEditingFinished);
_unifiedSearchTextEditingFinishedTimer.start();
_waitingForSearchTermEditEnd = true;
emit waitingForSearchTermEditEndChanged();
}
if (!_results.isEmpty()) {
@ -367,6 +377,9 @@ void UnifiedSearchResultsListModel::fetchMoreTriggerClicked(const QString &provi
void UnifiedSearchResultsListModel::slotSearchTermEditingFinished()
{
_waitingForSearchTermEditEnd = false;
emit waitingForSearchTermEditEndChanged();
disconnect(&_unifiedSearchTextEditingFinishedTimer, &QTimer::timeout, this,
&UnifiedSearchResultsListModel::slotSearchTermEditingFinished);

View File

@ -38,6 +38,7 @@ class UnifiedSearchResultsListModel : public QAbstractListModel
currentFetchMoreInProgressProviderIdChanged)
Q_PROPERTY(QString errorString READ errorString NOTIFY errorStringChanged)
Q_PROPERTY(QString searchTerm READ searchTerm WRITE setSearchTerm NOTIFY searchTermChanged)
Q_PROPERTY(bool waitingForSearchTermEditEnd READ waitingForSearchTermEditEnd NOTIFY waitingForSearchTermEditEndChanged)
struct UnifiedSearchProvider
{
@ -77,6 +78,7 @@ public:
QString currentFetchMoreInProgressProviderId() const;
QString searchTerm() const;
QString errorString() const;
bool waitingForSearchTermEditEnd() const;
Q_INVOKABLE void resultClicked(const QString &providerId, const QUrl &resourceUrl) const;
Q_INVOKABLE void fetchMoreTriggerClicked(const QString &providerId);
@ -106,6 +108,7 @@ signals:
void isSearchInProgressChanged();
void errorStringChanged();
void searchTermChanged();
void waitingForSearchTermEditEndChanged();
public slots:
void setSearchTerm(const QString &term);
@ -121,6 +124,7 @@ private:
QString _searchTerm;
QString _errorString;
bool _waitingForSearchTermEditEnd;
QString _currentFetchMoreInProgressProviderId;