diff --git a/rtgui/dynamicprofile.cc b/rtgui/dynamicprofile.cc index 86b8126e8..69bda1d89 100644 --- a/rtgui/dynamicprofile.cc +++ b/rtgui/dynamicprofile.cc @@ -70,7 +70,7 @@ bool DynamicProfileRule::operator<(const DynamicProfileRule &other) const } -bool DynamicProfileRule::matches(const rtengine::ImageMetaData *im) +bool DynamicProfileRule::matches(const rtengine::ImageMetaData *im) const { return (iso(im->getISOSpeed()) && fnumber(im->getFNumber()) diff --git a/rtgui/dynamicprofile.h b/rtgui/dynamicprofile.h index c662a51f7..4c5e552e4 100644 --- a/rtgui/dynamicprofile.h +++ b/rtgui/dynamicprofile.h @@ -48,7 +48,7 @@ public: }; DynamicProfileRule(); - bool matches(const rtengine::ImageMetaData *im); + bool matches(const rtengine::ImageMetaData *im) const; bool operator<(const DynamicProfileRule &other) const; int serial_number; diff --git a/rtgui/dynamicprofilepanel.cc b/rtgui/dynamicprofilepanel.cc index f148dab2e..d06f9be4f 100644 --- a/rtgui/dynamicprofilepanel.cc +++ b/rtgui/dynamicprofilepanel.cc @@ -517,16 +517,15 @@ void DynamicProfilePanel::on_button_edit() void DynamicProfilePanel::save() { - auto &rules = profileStore.getDynamicProfileRules(); - rules.clear(); + std::vector rules; int serial = 1; for (auto row : treemodel_->children()) { rules.emplace_back(to_rule(row, serial++)); } if (!storeDynamicProfileRules(rules)) { printf("Error in saving dynamic profile rules\n"); - rules.clear(); } else { + profileStore.setDynamicProfileRules(rules); printf("Saved %d dynamic profile rules\n", int(rules.size())); } } diff --git a/rtgui/profilestore.h b/rtgui/profilestore.h index 022652287..f97cd02e1 100644 --- a/rtgui/profilestore.h +++ b/rtgui/profilestore.h @@ -208,11 +208,16 @@ public: return internalDynamicEntry; } - std::vector &getDynamicProfileRules() + const std::vector &getDynamicProfileRules() const { return dynamicRules; } + void setDynamicProfileRules(const std::vector &r) + { + dynamicRules = r; + } + void addListener(ProfileStoreListener *listener); void removeListener(ProfileStoreListener *listener);