summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp2
-rw-r--r--src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.h2
-rw-r--r--src/imports/location/declarativeplaces/qdeclarativesearchresultmodel.cpp10
-rw-r--r--src/imports/location/declarativeplaces/qdeclarativesearchresultmodel_p.h2
-rw-r--r--src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp15
-rw-r--r--src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel_p.h2
6 files changed, 20 insertions, 13 deletions
diff --git a/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp b/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp
index 036ba0dd..ae0e7437 100644
--- a/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp
+++ b/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp
@@ -238,7 +238,7 @@ QString QDeclarativeSearchModelBase::errorString() const
/*!
\internal
*/
-void QDeclarativeSearchModelBase::clearData()
+void QDeclarativeSearchModelBase::clearData(bool suppressSignal)
{
}
diff --git a/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.h b/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.h
index a9da6aa1..34fb8763 100644
--- a/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.h
+++ b/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.h
@@ -105,7 +105,7 @@ public:
Q_INVOKABLE QString errorString() const;
- virtual void clearData();
+ virtual void clearData(bool suppressSignal = false);
virtual void updateSearchRequest();
// From QQmlParserStatus
diff --git a/src/imports/location/declarativeplaces/qdeclarativesearchresultmodel.cpp b/src/imports/location/declarativeplaces/qdeclarativesearchresultmodel.cpp
index 71baeb27..7c606038 100644
--- a/src/imports/location/declarativeplaces/qdeclarativesearchresultmodel.cpp
+++ b/src/imports/location/declarativeplaces/qdeclarativesearchresultmodel.cpp
@@ -566,9 +566,9 @@ int QDeclarativeSearchResultModel::rowCount(const QModelIndex &parent) const
return m_results.count();
}
-void QDeclarativeSearchResultModel::clearData()
+void QDeclarativeSearchResultModel::clearData(bool suppressSignal)
{
- QDeclarativeSearchModelBase::clearData();
+ QDeclarativeSearchModelBase::clearData(suppressSignal);
qDeleteAll(m_places);
m_places.clear();
@@ -576,7 +576,9 @@ void QDeclarativeSearchResultModel::clearData()
m_icons.clear();
if (!m_results.isEmpty()) {
m_results.clear();
- emit rowCountChanged();
+
+ if (!suppressSignal)
+ emit rowCountChanged();
}
}
@@ -774,7 +776,7 @@ void QDeclarativeSearchResultModel::updateLayout(const QList<QPlace> &favoritePl
int oldRowCount = rowCount();
beginResetModel();
- clearData();
+ clearData(true);
m_results = m_resultsBuffer;
m_resultsBuffer.clear();
diff --git a/src/imports/location/declarativeplaces/qdeclarativesearchresultmodel_p.h b/src/imports/location/declarativeplaces/qdeclarativesearchresultmodel_p.h
index de42c3bc..8313b2af 100644
--- a/src/imports/location/declarativeplaces/qdeclarativesearchresultmodel_p.h
+++ b/src/imports/location/declarativeplaces/qdeclarativesearchresultmodel_p.h
@@ -109,7 +109,7 @@ public:
int rowCount(const QModelIndex &parent = QModelIndex()) const;
- virtual void clearData();
+ virtual void clearData(bool suppressSignal = false);
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
Q_INVOKABLE QVariant data(int index, const QString &roleName) const;
QHash<int, QByteArray> roleNames() const;
diff --git a/src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp b/src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp
index 88fcd02a..51dd76fa 100644
--- a/src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp
+++ b/src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp
@@ -267,13 +267,15 @@ QStringList QDeclarativeSearchSuggestionModel::suggestions() const
/*!
\internal
*/
-void QDeclarativeSearchSuggestionModel::clearData()
+void QDeclarativeSearchSuggestionModel::clearData(bool suppressSignal)
{
- QDeclarativeSearchModelBase::clearData();
+ QDeclarativeSearchModelBase::clearData(suppressSignal);
if (!m_suggestions.isEmpty()) {
m_suggestions.clear();
- emit suggestionsChanged();
+
+ if (!suppressSignal)
+ emit suggestionsChanged();
}
}
@@ -333,13 +335,16 @@ void QDeclarativeSearchSuggestionModel::queryFinished()
QPlaceReply *reply = m_reply;
m_reply = 0;
+ int initialCount = m_suggestions.count();
beginResetModel();
- clearData();
+ clearData(true);
QPlaceSearchSuggestionReply *suggestionReply = qobject_cast<QPlaceSearchSuggestionReply *>(reply);
m_suggestions = suggestionReply->suggestions();
- emit suggestionsChanged();
+
+ if (initialCount != m_suggestions.count())
+ emit suggestionsChanged();
endResetModel();
diff --git a/src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel_p.h b/src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel_p.h
index a974671b..0ff6bcd3 100644
--- a/src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel_p.h
+++ b/src/imports/location/declarativeplaces/qdeclarativesearchsuggestionmodel_p.h
@@ -67,7 +67,7 @@ public:
QStringList suggestions() const;
- void clearData();
+ void clearData(bool suppressSignal = false);
void updateSearchRequest();
// From QAbstractListModel