From b16287ff6f0781f2e8d0ac14a85425cae3eaef44 Mon Sep 17 00:00:00 2001 From: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com> Date: Sun, 20 Oct 2024 15:14:50 -0700 Subject: [PATCH] Fix rank, color label, and trash status reset The rank, color label, and trash status from a previous session would reset after editing an image or clearing the processing profile. --- rtgui/thumbnail.cc | 14 +++++++------- rtgui/thumbnail.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index f5098ae6d..141607c56 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -485,7 +485,7 @@ void Thumbnail::clearProcParams (int whoClearedIt) pparams->setDefaults(); // preserve rank, colorlabel and inTrash across clear - updateProcParamsProperties(); + updateProcParamsProperties(true); // params could get validated by updateProcParamsProperties if (pparamsValid) { @@ -594,7 +594,7 @@ void Thumbnail::setProcParams (const ProcParams& pp, ParamsEdited* pe, int whoCh pparamsValid = true; // do not update rank, colorlabel and inTrash - updateProcParamsProperties(); + updateProcParamsProperties(true); if (updateCacheNow) { updateCache(); @@ -1295,25 +1295,25 @@ void Thumbnail::loadProperties() } } -void Thumbnail::updateProcParamsProperties() +void Thumbnail::updateProcParamsProperties(bool forceUpdate) { - if (!properties.edited()) { + if (!(properties.edited() || forceUpdate)) { return; } - if (properties.trashed.edited && properties.trashed != pparams->inTrash) { + if ((properties.trashed.edited || forceUpdate) && properties.trashed != pparams->inTrash) { pparams->inTrash = properties.trashed; pparamsValid = true; } // save procparams rank and color also when options.thumbnailRankColorMode == Options::ThumbnailPropertyMode::XMP // so they'll be kept in sync - if (properties.rank.edited && properties.rank != pparams->rank) { + if ((properties.rank.edited || forceUpdate) && properties.rank != pparams->rank) { pparams->rank = properties.rank; pparamsValid = true; } - if (properties.color.edited && properties.color != pparams->colorlabel) { + if ((properties.color.edited || forceUpdate) && properties.color != pparams->colorlabel) { pparams->colorlabel = properties.color; pparamsValid = true; } diff --git a/rtgui/thumbnail.h b/rtgui/thumbnail.h index c1e52760c..ca8196667 100644 --- a/rtgui/thumbnail.h +++ b/rtgui/thumbnail.h @@ -115,7 +115,7 @@ class Thumbnail void saveMetadata(); void loadProperties(); - void updateProcParamsProperties(); + void updateProcParamsProperties(bool forceUpdate = false); void saveXMPSidecarProperties(); public: