From b4435e5e57b8a4810cb502245a32aa92155244e0 Mon Sep 17 00:00:00 2001 From: Twan van Laarhoven Date: Wed, 6 May 2020 02:47:02 +0200 Subject: [PATCH] Themed checkboxes Slightly larger items in (multiple) choice viewers --- src/data/field/choice.cpp | 14 ++--- src/data/field/choice.hpp | 27 ++++++-- src/gui/drop_down_list.hpp | 8 +-- src/gui/thumbnail_thread.cpp | 3 +- src/gui/util.cpp | 73 ++++++++++++---------- src/gui/util.hpp | 4 +- src/gui/value/choice.cpp | 92 ++++++++++------------------ src/gui/value/choice.hpp | 22 +++---- src/gui/value/multiple_choice.cpp | 32 +++++----- src/gui/value/text.cpp | 4 +- src/render/value/multiple_choice.cpp | 4 +- 11 files changed, 136 insertions(+), 147 deletions(-) diff --git a/src/data/field/choice.cpp b/src/data/field/choice.cpp index 0bd98868..65af5c68 100644 --- a/src/data/field/choice.cpp +++ b/src/data/field/choice.cpp @@ -116,7 +116,7 @@ String ChoiceField::Choice::choiceName(int id) const { } } } - return _(""); + return String(); } String ChoiceField::Choice::choiceNameNice(int id) const { @@ -165,14 +165,9 @@ ChoiceStyle::ChoiceStyle(const ChoiceFieldP& field) , choice_images_initialized(false) , combine(COMBINE_NORMAL) , alignment(ALIGN_STRETCH) - , thumbnails(nullptr) , content_width(0.0), content_height(0.0) {} -ChoiceStyle::~ChoiceStyle() { - delete thumbnails; -} - void ChoiceStyle::initImage() { if (image.isSet() || choice_images.empty()) return; // for, for example: @@ -234,10 +229,9 @@ void ChoiceStyle::checkContentDependencies(Context& ctx, const Dependency& dep) void ChoiceStyle::invalidate() { // TODO : this is also done in update(), once should be enough // Update choice images and thumbnails - int end = field().choices->lastId(); - thumbnails_status.resize(end, THUMB_NOT_MADE); - for (int i = 0 ; i < end ; ++i) { - if (thumbnails_status[i] == THUMB_OK) thumbnails_status[i] = THUMB_CHANGED; + for (auto& thumbnail : thumbnails) { + ChoiceThumbnailLock lock(thumbnail.mutex); + if (thumbnail.status == THUMB_OK) thumbnail.status = THUMB_CHANGED; } tellListeners(CHANGE_OTHER); } diff --git a/src/data/field/choice.hpp b/src/data/field/choice.hpp index c75455d0..7167155b 100644 --- a/src/data/field/choice.hpp +++ b/src/data/field/choice.hpp @@ -16,7 +16,7 @@ #include