summaryrefslogtreecommitdiff
path: root/src/imports
diff options
context:
space:
mode:
authorabcd <amos.choy@nokia.com>2012-07-11 15:51:52 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-12 02:49:34 +0200
commitd9d8844dc3fdf7433e78dcf4489052c1bb28c3cd (patch)
tree43b8bc01ff7332a79b00216bdf93027976ab70a2 /src/imports
parent1e0665557adc170d4b76bf988e4c3bed3b21d6c6 (diff)
downloadqtlocation-d9d8844dc3fdf7433e78dcf4489052c1bb28c3cd.tar.gz
Fix emission of signals
Previously, the PlaceSearchModel would emit a countChanged signal on clearing the old results to make way for the new ones during an update. i.e. an emission for count = 0 was made. This changes fixes it so that this "extra" signal is not emitted during an update. Change-Id: I159a1a09deef13b8420d20869859b4e58e94d1ed Reviewed-by: Aaron McCarthy <aaron.mccarthy@nokia.com>
Diffstat (limited to 'src/imports')
-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