summaryrefslogtreecommitdiff
path: root/src/location/declarativeplaces
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/declarativeplaces')
-rw-r--r--src/location/declarativeplaces/qdeclarativecategory.cpp15
-rw-r--r--src/location/declarativeplaces/qdeclarativecategory_p.h1
-rw-r--r--src/location/declarativeplaces/qdeclarativeplace.cpp81
-rw-r--r--src/location/declarativeplaces/qdeclarativeplace_p.h3
4 files changed, 39 insertions, 61 deletions
diff --git a/src/location/declarativeplaces/qdeclarativecategory.cpp b/src/location/declarativeplaces/qdeclarativecategory.cpp
index e4ca6168..a8bcf10c 100644
--- a/src/location/declarativeplaces/qdeclarativecategory.cpp
+++ b/src/location/declarativeplaces/qdeclarativecategory.cpp
@@ -165,12 +165,12 @@ void QDeclarativeCategory::setCategory(const QPlaceCategory &category)
if (category.categoryId() != previous.categoryId())
emit categoryIdChanged();
- setIcon(m_category.icon());
+ if (category.icon() != previous.icon())
+ emit iconChanged();
}
QPlaceCategory QDeclarativeCategory::category()
{
- m_category.setIcon(m_icon);
return m_category;
}
@@ -262,16 +262,15 @@ void QDeclarativeCategory::setVisibility(Visibility visibility)
*/
QPlaceIcon QDeclarativeCategory::icon() const
{
- return m_icon;
+ return m_category.icon();
}
void QDeclarativeCategory::setIcon(const QPlaceIcon &icon)
{
- if (m_icon == icon)
- return;
-
- m_icon = icon;
- emit iconChanged();
+ if (m_category.icon() != icon) {
+ m_category.setIcon(icon);
+ emit iconChanged();
+ }
}
/*!
diff --git a/src/location/declarativeplaces/qdeclarativecategory_p.h b/src/location/declarativeplaces/qdeclarativecategory_p.h
index e762b726..c4a0b4f3 100644
--- a/src/location/declarativeplaces/qdeclarativecategory_p.h
+++ b/src/location/declarativeplaces/qdeclarativecategory_p.h
@@ -141,7 +141,6 @@ private:
QPlaceManager *manager();
QPlaceCategory m_category;
- QPlaceIcon m_icon;
QDeclarativeGeoServiceProvider *m_plugin = nullptr;
QPlaceReply *m_reply = nullptr;
bool m_complete = false;
diff --git a/src/location/declarativeplaces/qdeclarativeplace.cpp b/src/location/declarativeplaces/qdeclarativeplace.cpp
index 5cdb7649..f4b14f9c 100644
--- a/src/location/declarativeplaces/qdeclarativeplace.cpp
+++ b/src/location/declarativeplaces/qdeclarativeplace.cpp
@@ -324,34 +324,28 @@ void QDeclarativePlace::setPlace(const QPlace &src)
emit locationChanged();
}
- setRatings(m_src.ratings());
- setSupplier(m_src.supplier());
- setIcon(m_src.icon());
-
- if (previous.name() != m_src.name()) {
+ if (previous.ratings() != m_src.ratings())
+ emit ratingsChanged();
+ if (previous.supplier() != m_src.supplier())
+ emit supplierChanged();
+ if (previous.icon() != m_src.icon())
+ emit iconChanged();
+ if (previous.name() != m_src.name())
emit nameChanged();
- }
- if (previous.placeId() != m_src.placeId()) {
+ if (previous.placeId() != m_src.placeId())
emit placeIdChanged();
- }
- if (previous.attribution() != m_src.attribution()) {
+ if (previous.attribution() != m_src.attribution())
emit attributionChanged();
- }
- if (previous.detailsFetched() != m_src.detailsFetched()) {
+ if (previous.detailsFetched() != m_src.detailsFetched())
emit detailsFetchedChanged();
- }
- if (previous.primaryPhone() != m_src.primaryPhone()) {
+ if (previous.primaryPhone() != m_src.primaryPhone())
emit primaryPhoneChanged();
- }
- if (previous.primaryFax() != m_src.primaryFax()) {
+ if (previous.primaryFax() != m_src.primaryFax())
emit primaryFaxChanged();
- }
- if (previous.primaryEmail() != m_src.primaryEmail()) {
+ if (previous.primaryEmail() != m_src.primaryEmail())
emit primaryEmailChanged();
- }
- if (previous.primaryWebsite() != m_src.primaryWebsite()) {
+ if (previous.primaryWebsite() != m_src.primaryWebsite())
emit primaryWebsiteChanged();
- }
if (m_reviewModel && m_src.totalContentCount(QPlaceContent::ReviewType) >= 0) {
m_reviewModel->initializeCollection(m_src.totalContentCount(QPlaceContent::ReviewType),
@@ -372,7 +366,9 @@ void QDeclarativePlace::setPlace(const QPlace &src)
QPlace QDeclarativePlace::place() const
{
- // The following properties are not stored in m_src but instead stored in QDeclarative* objects
+ // The properties handled explicirly here are not stored in m_src, but
+ // but are instead stored in QDeclarative* objects which we need to update
+ // explicitly.
QPlace result = m_src;
@@ -386,15 +382,6 @@ QPlace QDeclarativePlace::place() const
// Location
result.setLocation(m_location ? m_location->location() : QGeoLocation());
- // Rating
- result.setRatings(m_ratings);
-
- // Supplier
- result.setSupplier(m_supplier);
-
- // Icon
- result.setIcon(m_icon);
-
//contact details
QList<QPlaceContactDetail> cppDetails;
for (const QString &key : m_contactDetails->keys()) {
@@ -443,17 +430,15 @@ QDeclarativeGeoLocation *QDeclarativePlace::location() const
*/
void QDeclarativePlace::setRatings(const QPlaceRatings &rating)
{
- if (m_ratings == rating)
- return;
-
- m_ratings = rating;
- emit ratingsChanged();
+ if (m_src.ratings() != rating) {
+ m_src.setRatings(rating);
+ emit ratingsChanged();
+ }
}
QPlaceRatings QDeclarativePlace::ratings() const
{
-
- return m_ratings;
+ return m_src.ratings();
}
/*!
@@ -464,16 +449,15 @@ QPlaceRatings QDeclarativePlace::ratings() const
*/
void QDeclarativePlace::setSupplier(const QPlaceSupplier &supplier)
{
- if (m_supplier == supplier)
- return;
-
- m_supplier = supplier;
- emit supplierChanged();
+ if (m_src.supplier() != supplier) {
+ m_src.setSupplier(supplier);
+ emit supplierChanged();
+ }
}
QPlaceSupplier QDeclarativePlace::supplier() const
{
- return m_supplier;
+ return m_src.supplier();
}
/*!
@@ -483,16 +467,15 @@ QPlaceSupplier QDeclarativePlace::supplier() const
*/
QPlaceIcon QDeclarativePlace::icon() const
{
- return m_icon;
+ return m_src.icon();
}
void QDeclarativePlace::setIcon(const QPlaceIcon &icon)
{
- if (m_icon == icon)
- return;
-
- m_icon = icon;
- emit iconChanged();
+ if (m_src.icon() != icon) {
+ m_src.setIcon(icon);
+ emit iconChanged();
+ }
}
/*!
diff --git a/src/location/declarativeplaces/qdeclarativeplace_p.h b/src/location/declarativeplaces/qdeclarativeplace_p.h
index 9774b8eb..e4d94017 100644
--- a/src/location/declarativeplaces/qdeclarativeplace_p.h
+++ b/src/location/declarativeplaces/qdeclarativeplace_p.h
@@ -226,9 +226,6 @@ private:
QList<QDeclarativeCategory *> m_categories;
QDeclarativeGeoLocation *m_location = nullptr;
- QPlaceRatings m_ratings;
- QPlaceSupplier m_supplier;
- QPlaceIcon m_icon;
QDeclarativePlaceReviewModel *m_reviewModel = nullptr;
QDeclarativePlaceImageModel *m_imageModel = nullptr;
QDeclarativePlaceEditorialModel *m_editorialModel = nullptr;