\r
UnifiedSearchResultNothingFound {\r
id: unifiedSearchResultNothingFound\r
- visible: false\r
+\r
anchors.top: trayWindowUnifiedSearchInputContainer.bottom\r
anchors.left: trayWindowMainItem.left\r
anchors.right: trayWindowMainItem.right\r
text: UserModel.currentUser.unifiedSearchResultsListModel.searchTerm\r
\r
property bool isSearchRunning: UserModel.currentUser.unifiedSearchResultsListModel.isSearchInProgress\r
+ property bool waitingForSearchTermEditEnd: UserModel.currentUser.unifiedSearchResultsListModel.waitingForSearchTermEditEnd\r
property bool isSearchResultsEmpty: unifiedSearchResultsListView.count === 0\r
property bool nothingFound: text && isSearchResultsEmpty && !UserModel.currentUser.unifiedSearchResultsListModel.errorString\r
\r
- onIsSearchRunningChanged: {\r
- if (unifiedSearchResultNothingFound.isSearchRunning) {\r
- visible = false;\r
- } else {\r
- if (nothingFound) {\r
- visible = true;\r
- }\r
- }\r
- }\r
-\r
- onTextChanged: {\r
- visible = false;\r
- }\r
-\r
- onIsSearchResultsEmptyChanged: {\r
- if (!unifiedSearchResultNothingFound.isSearchResultsEmpty) {\r
- visible = false;\r
- }\r
- }\r
+ visible: !isSearchRunning && !waitingForSearchTermEditEnd && nothingFound\r
}\r
\r
Loader {\r
UnifiedSearchResultsListModel::UnifiedSearchResultsListModel(AccountState *accountState, QObject *parent)
: QAbstractListModel(parent)
+ , _waitingForSearchTermEditEnd(false)
, _accountState(accountState)
{
}
return _currentFetchMoreInProgressProviderId;
}
+bool UnifiedSearchResultsListModel::waitingForSearchTermEditEnd() const
+{
+ return _waitingForSearchTermEditEnd;
+}
+
void UnifiedSearchResultsListModel::setSearchTerm(const QString &term)
{
if (term == _searchTerm) {
if (_unifiedSearchTextEditingFinishedTimer.isActive()) {
_unifiedSearchTextEditingFinishedTimer.stop();
+ _waitingForSearchTermEditEnd = false;
+ emit waitingForSearchTermEditEndChanged();
}
if (!_searchTerm.isEmpty()) {
connect(&_unifiedSearchTextEditingFinishedTimer, &QTimer::timeout, this,
&UnifiedSearchResultsListModel::slotSearchTermEditingFinished);
_unifiedSearchTextEditingFinishedTimer.start();
+ _waitingForSearchTermEditEnd = true;
+ emit waitingForSearchTermEditEndChanged();
}
if (!_results.isEmpty()) {
void UnifiedSearchResultsListModel::slotSearchTermEditingFinished()
{
+ _waitingForSearchTermEditEnd = false;
+ emit waitingForSearchTermEditEndChanged();
+
disconnect(&_unifiedSearchTextEditingFinishedTimer, &QTimer::timeout, this,
&UnifiedSearchResultsListModel::slotSearchTermEditingFinished);
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
{
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);
void isSearchInProgressChanged();
void errorStringChanged();
void searchTermChanged();
+ void waitingForSearchTermEditEndChanged();
public slots:
void setSearchTerm(const QString &term);
QString _searchTerm;
QString _errorString;
+ bool _waitingForSearchTermEditEnd;
QString _currentFetchMoreInProgressProviderId;