From b1026a241ad73347059e01e2214c54f1884948d5 Mon Sep 17 00:00:00 2001 From: Stefan Comanescu Date: Sun, 15 Nov 2020 22:20:59 +0200 Subject: [PATCH 1/4] Add configuration for customizing numbering behaviour --- include/kImageAnnotator/KImageAnnotator.h | 1 + src/annotations/core/AnnotationArea.cpp | 6 ++++++ .../core/AnnotationItemFactory.cpp | 5 +++++ src/annotations/core/AnnotationItemFactory.h | 1 + src/annotations/misc/NumberManager.cpp | 20 +++++++++++++++++-- src/annotations/misc/NumberManager.h | 2 ++ src/backend/Config.cpp | 17 +++++++++++++++- src/backend/Config.h | 7 +++++++ src/gui/KImageAnnotator.cpp | 6 ++++++ 9 files changed, 62 insertions(+), 3 deletions(-) diff --git a/include/kImageAnnotator/KImageAnnotator.h b/include/kImageAnnotator/KImageAnnotator.h index 025f8eef..f2df228b 100644 --- a/include/kImageAnnotator/KImageAnnotator.h +++ b/include/kImageAnnotator/KImageAnnotator.h @@ -58,6 +58,7 @@ public Q_SLOTS: void setSaveToolSelection(bool enabled); void setSmoothFactor(int factor); void setSwitchToSelectToolAfterDrawingItem(bool enabled); + void setStartingNumberUpdatesExistingItems(bool enabled); void setTabBarAutoHide(bool enabled); void removeTab(int index); void setStickers(const QStringList &stickerPaths, bool keepDefault); diff --git a/src/annotations/core/AnnotationArea.cpp b/src/annotations/core/AnnotationArea.cpp index ea246b2c..ec25cf10 100644 --- a/src/annotations/core/AnnotationArea.cpp +++ b/src/annotations/core/AnnotationArea.cpp @@ -54,6 +54,12 @@ AnnotationArea::AnnotationArea(Config *config, AbstractSettingsProvider *setting connect(&mKeyListener, &KeyEventListener::keyPressed, mKeyHelper, &KeyHelper::keyPress); connect(&mKeyListener, &KeyEventListener::keyReleased, mKeyHelper, &KeyHelper::keyRelease); + + connect(mConfig, &Config::startingNumberUpdatesExistingItemsChanged, + [this](bool value) { + mItemFactory->setStartingNumberUpdatesExistingItems(value); + }); + mItemFactory->setStartingNumberUpdatesExistingItems(mConfig->startingNumberUpdatesExistingItems()); } AnnotationArea::~AnnotationArea() diff --git a/src/annotations/core/AnnotationItemFactory.cpp b/src/annotations/core/AnnotationItemFactory.cpp index ae8f8371..0fe619bb 100644 --- a/src/annotations/core/AnnotationItemFactory.cpp +++ b/src/annotations/core/AnnotationItemFactory.cpp @@ -54,6 +54,11 @@ int AnnotationItemFactory::firstBadgeNumber() const return mNumberManager->firstNumber(); } +void AnnotationItemFactory::setStartingNumberUpdatesExistingItems(bool value) +{ + mNumberManager->setStartingNumberUpdatesExistingItems(value); +} + AbstractAnnotationItem *AnnotationItemFactory::create(const QPointF &initPosition) { auto toolType = mSettingsProvider->toolType(); diff --git a/src/annotations/core/AnnotationItemFactory.h b/src/annotations/core/AnnotationItemFactory.h index 7050c93a..625b23e3 100644 --- a/src/annotations/core/AnnotationItemFactory.h +++ b/src/annotations/core/AnnotationItemFactory.h @@ -53,6 +53,7 @@ Q_OBJECT void reset(); void setFirstBadgeNumber(int number); int firstBadgeNumber() const; + void setStartingNumberUpdatesExistingItems(bool value); AbstractAnnotationItem *create(const QPointF &initPosition); AbstractAnnotationItem *create(const QPointF &initPosition, const QPixmap &image); AbstractAnnotationItem *clone(const AbstractAnnotationItem *item); diff --git a/src/annotations/misc/NumberManager.cpp b/src/annotations/misc/NumberManager.cpp index cc5c2ead..4853d5ae 100644 --- a/src/annotations/misc/NumberManager.cpp +++ b/src/annotations/misc/NumberManager.cpp @@ -22,7 +22,8 @@ namespace kImageAnnotator { NumberManager::NumberManager() : - mFirstNumber(1) + mFirstNumber(1), + mStartingNumberUpdatesExistingItems(true) { } @@ -47,7 +48,13 @@ void NumberManager::addItemInner(AbstractAnnotationItem *item) connect(item, &AbstractAnnotationItem::visibleChanged, this, &NumberManager::updateNumbers); mItems.append(item); - updateNumbers(); + + if (mStartingNumberUpdatesExistingItems) { + updateNumbers(); + } else { + auto numberItem = dynamic_cast(item); + numberItem->setNumber(mFirstNumber); + } } void NumberManager::reset() @@ -57,6 +64,10 @@ void NumberManager::reset() void NumberManager::updateNumbers() { + if (!mStartingNumberUpdatesExistingItems) { + return; + } + auto number = mFirstNumber; for (auto item : mItems) { if (item->isVisible()) { @@ -77,4 +88,9 @@ int NumberManager::firstNumber() const return mFirstNumber; } +void NumberManager::setStartingNumberUpdatesExistingItems(bool value) +{ + mStartingNumberUpdatesExistingItems = value; +} + } // namespace kImageAnnotator diff --git a/src/annotations/misc/NumberManager.h b/src/annotations/misc/NumberManager.h index 73a64477..b1d54f0a 100644 --- a/src/annotations/misc/NumberManager.h +++ b/src/annotations/misc/NumberManager.h @@ -40,6 +40,7 @@ Q_OBJECT void reset(); void setFirstNumber(int number); int firstNumber() const; + void setStartingNumberUpdatesExistingItems(bool value); public slots: void updateNumbers(); @@ -47,6 +48,7 @@ public slots: private: int mFirstNumber; QList mItems; + bool mStartingNumberUpdatesExistingItems; void addItemInner(AbstractAnnotationItem *item); }; diff --git a/src/backend/Config.cpp b/src/backend/Config.cpp index 184bec9e..7fb41831 100644 --- a/src/backend/Config.cpp +++ b/src/backend/Config.cpp @@ -27,7 +27,8 @@ Config::Config() : mSmoothPathEnabled(false), mSaveToolSelection(false), mSmoothFactor(0), - mSwitchToSelectToolAfterDrawingItem(false) + mSwitchToSelectToolAfterDrawingItem(false), + mStartingNumberUpdatesExistingItems(true) { mAllTools = QList{ Tools::Pen, @@ -210,6 +211,19 @@ void Config::setSwitchToSelectToolAfterDrawingItem(bool enabled) mSwitchToSelectToolAfterDrawingItem = enabled; } +bool Config::startingNumberUpdatesExistingItems() const +{ + return mStartingNumberUpdatesExistingItems; +} + +void Config::setStartingNumberUpdatesExistingItems(bool enabled) +{ + if (enabled != mStartingNumberUpdatesExistingItems) { + mStartingNumberUpdatesExistingItems = enabled; + emit startingNumberUpdatesExistingItemsChanged(enabled); + } +} + int Config::obfuscationFactor(Tools toolType) const { return mToolToObfuscationFactor[toolType]; @@ -297,6 +311,7 @@ void Config::initGeneralSettings() mItemShadowEnabled = true; mSmoothFactor = 7; mSwitchToSelectToolAfterDrawingItem = false; + mStartingNumberUpdatesExistingItems = true; } QColor Config::loadToolColor(Tools toolType) diff --git a/src/backend/Config.h b/src/backend/Config.h index d5c45ffe..30490e01 100644 --- a/src/backend/Config.h +++ b/src/backend/Config.h @@ -77,9 +77,15 @@ public slots: bool switchToSelectToolAfterDrawingItem() const; void setSwitchToSelectToolAfterDrawingItem(bool enabled); + bool startingNumberUpdatesExistingItems() const; + void setStartingNumberUpdatesExistingItems(bool enabled); + int obfuscationFactor(Tools toolType) const; void setObfuscationFactor(int factor, Tools toolType); +signals: + void startingNumberUpdatesExistingItemsChanged(bool value) const; + private: QSettings mConfig; QList mAllTools; @@ -95,6 +101,7 @@ public slots: bool mSaveToolSelection; int mSmoothFactor; bool mSwitchToSelectToolAfterDrawingItem; + bool mStartingNumberUpdatesExistingItems; void initToolSettings(); void initSelectedTool(); diff --git a/src/gui/KImageAnnotator.cpp b/src/gui/KImageAnnotator.cpp index e4461de1..28175c73 100644 --- a/src/gui/KImageAnnotator.cpp +++ b/src/gui/KImageAnnotator.cpp @@ -158,6 +158,12 @@ void KImageAnnotator::setSwitchToSelectToolAfterDrawingItem(bool enabled) d->mConfig.setSwitchToSelectToolAfterDrawingItem(enabled); } +void KImageAnnotator::setStartingNumberUpdatesExistingItems(bool enabled) +{ + Q_D(KImageAnnotator); + d->mConfig.setStartingNumberUpdatesExistingItems(enabled); +} + void KImageAnnotator::setTabBarAutoHide(bool enabled) { Q_D(KImageAnnotator); From de29295311e20df6f916fca860c20fdd4f964cb0 Mon Sep 17 00:00:00 2001 From: Stefan Comanescu Date: Tue, 24 Nov 2020 19:54:34 +0200 Subject: [PATCH 2/4] Use new NumberUpdateMode enum --- CMakeLists.txt | 4 +++ include/kImageAnnotator/KImageAnnotator.h | 3 +- src/annotations/core/AnnotationArea.cpp | 8 ++--- .../core/AnnotationItemFactory.cpp | 4 +-- src/annotations/core/AnnotationItemFactory.h | 3 +- src/annotations/misc/NumberManager.cpp | 29 ++++++++------- src/annotations/misc/NumberManager.h | 10 +++--- src/backend/Config.cpp | 16 ++++----- src/backend/Config.h | 9 ++--- src/common/enum/NumberUpdateMode.h | 35 +++++++++++++++++++ src/gui/KImageAnnotator.cpp | 4 +-- 11 files changed, 87 insertions(+), 38 deletions(-) create mode 100644 src/common/enum/NumberUpdateMode.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 6cf69d2c..d9377fe1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,6 +94,10 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/kImageAnnotator DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/common/enum/NumberUpdateMode.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/kImageAnnotator/include + ) + configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/kImageAnnotatorConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake/kImageAnnotatorConfig.cmake diff --git a/include/kImageAnnotator/KImageAnnotator.h b/include/kImageAnnotator/KImageAnnotator.h index f2df228b..42290fae 100644 --- a/include/kImageAnnotator/KImageAnnotator.h +++ b/include/kImageAnnotator/KImageAnnotator.h @@ -22,6 +22,7 @@ #include +#include #include namespace kImageAnnotator { @@ -58,7 +59,7 @@ public Q_SLOTS: void setSaveToolSelection(bool enabled); void setSmoothFactor(int factor); void setSwitchToSelectToolAfterDrawingItem(bool enabled); - void setStartingNumberUpdatesExistingItems(bool enabled); + void setNumberUpdateMode(NumberUpdateMode numberUpdateMode); void setTabBarAutoHide(bool enabled); void removeTab(int index); void setStickers(const QStringList &stickerPaths, bool keepDefault); diff --git a/src/annotations/core/AnnotationArea.cpp b/src/annotations/core/AnnotationArea.cpp index ec25cf10..bde65b1d 100644 --- a/src/annotations/core/AnnotationArea.cpp +++ b/src/annotations/core/AnnotationArea.cpp @@ -55,11 +55,11 @@ AnnotationArea::AnnotationArea(Config *config, AbstractSettingsProvider *setting connect(&mKeyListener, &KeyEventListener::keyPressed, mKeyHelper, &KeyHelper::keyPress); connect(&mKeyListener, &KeyEventListener::keyReleased, mKeyHelper, &KeyHelper::keyRelease); - connect(mConfig, &Config::startingNumberUpdatesExistingItemsChanged, - [this](bool value) { - mItemFactory->setStartingNumberUpdatesExistingItems(value); + connect(mConfig, &Config::numberUpdateModeChanged, + [this](NumberUpdateMode numberUpdateMode) { + mItemFactory->setNumberUpdateMode(numberUpdateMode); }); - mItemFactory->setStartingNumberUpdatesExistingItems(mConfig->startingNumberUpdatesExistingItems()); + mItemFactory->setNumberUpdateMode(mConfig->numberUpdateMode()); } AnnotationArea::~AnnotationArea() diff --git a/src/annotations/core/AnnotationItemFactory.cpp b/src/annotations/core/AnnotationItemFactory.cpp index 0fe619bb..62829d87 100644 --- a/src/annotations/core/AnnotationItemFactory.cpp +++ b/src/annotations/core/AnnotationItemFactory.cpp @@ -54,9 +54,9 @@ int AnnotationItemFactory::firstBadgeNumber() const return mNumberManager->firstNumber(); } -void AnnotationItemFactory::setStartingNumberUpdatesExistingItems(bool value) +void AnnotationItemFactory::setNumberUpdateMode(NumberUpdateMode numberUpdateMode) { - mNumberManager->setStartingNumberUpdatesExistingItems(value); + mNumberManager->setNumberUpdateMode(numberUpdateMode); } AbstractAnnotationItem *AnnotationItemFactory::create(const QPointF &initPosition) diff --git a/src/annotations/core/AnnotationItemFactory.h b/src/annotations/core/AnnotationItemFactory.h index 625b23e3..7b497f66 100644 --- a/src/annotations/core/AnnotationItemFactory.h +++ b/src/annotations/core/AnnotationItemFactory.h @@ -41,6 +41,7 @@ #include "src/annotations/items/AnnotationSticker.h" #include "src/annotations/misc/NumberManager.h" #include "src/common/enum/Tools.h" +#include "src/common/enum/NumberUpdateMode.h" namespace kImageAnnotator { @@ -53,7 +54,7 @@ Q_OBJECT void reset(); void setFirstBadgeNumber(int number); int firstBadgeNumber() const; - void setStartingNumberUpdatesExistingItems(bool value); + void setNumberUpdateMode(NumberUpdateMode numberUpdateMode); AbstractAnnotationItem *create(const QPointF &initPosition); AbstractAnnotationItem *create(const QPointF &initPosition, const QPixmap &image); AbstractAnnotationItem *clone(const AbstractAnnotationItem *item); diff --git a/src/annotations/misc/NumberManager.cpp b/src/annotations/misc/NumberManager.cpp index 4853d5ae..9f1ab059 100644 --- a/src/annotations/misc/NumberManager.cpp +++ b/src/annotations/misc/NumberManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018 Damir Porobic + * Copyright (C) 2020 Damir Porobic * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -23,7 +23,7 @@ namespace kImageAnnotator { NumberManager::NumberManager() : mFirstNumber(1), - mStartingNumberUpdatesExistingItems(true) + mNumberUpdateMode(NumberUpdateMode::UseNextNumber) { } @@ -46,25 +46,30 @@ void NumberManager::addItemInner(AbstractAnnotationItem *item) { Q_ASSERT(item != nullptr); - connect(item, &AbstractAnnotationItem::visibleChanged, this, &NumberManager::updateNumbers); + connect(item, &AbstractAnnotationItem::visibleChanged, this, &NumberManager::updateNumbersIfRequired); mItems.append(item); - if (mStartingNumberUpdatesExistingItems) { - updateNumbers(); + if (mNumberUpdateMode == NumberUpdateMode::UseNextNumber) { + updateNumbersIfRequired(); } else { - auto numberItem = dynamic_cast(item); - numberItem->setNumber(mFirstNumber); + initItemNumber(item); } } +void NumberManager::initItemNumber(AbstractAnnotationItem *item) +{ + auto numberItem = dynamic_cast(item); + numberItem->setNumber(mFirstNumber); +} + void NumberManager::reset() { mItems.clear(); } -void NumberManager::updateNumbers() +void NumberManager::updateNumbersIfRequired() { - if (!mStartingNumberUpdatesExistingItems) { + if (mNumberUpdateMode == NumberUpdateMode::UseStartingNumber) { return; } @@ -80,7 +85,7 @@ void NumberManager::updateNumbers() void NumberManager::setFirstNumber(int number) { mFirstNumber = number; - updateNumbers(); + updateNumbersIfRequired(); } int NumberManager::firstNumber() const @@ -88,9 +93,9 @@ int NumberManager::firstNumber() const return mFirstNumber; } -void NumberManager::setStartingNumberUpdatesExistingItems(bool value) +void NumberManager::setNumberUpdateMode(NumberUpdateMode numberUpdateMode) { - mStartingNumberUpdatesExistingItems = value; + mNumberUpdateMode = numberUpdateMode; } } // namespace kImageAnnotator diff --git a/src/annotations/misc/NumberManager.h b/src/annotations/misc/NumberManager.h index b1d54f0a..b6a762b0 100644 --- a/src/annotations/misc/NumberManager.h +++ b/src/annotations/misc/NumberManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018 Damir Porobic + * Copyright (C) 2020 Damir Porobic * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -22,6 +22,7 @@ #include +#include "src/common/enum/NumberUpdateMode.h" #include "src/annotations/items/AnnotationNumber.h" #include "src/annotations/items/AnnotationNumberPointer.h" #include "src/annotations/items/AnnotationNumberArrow.h" @@ -40,17 +41,18 @@ Q_OBJECT void reset(); void setFirstNumber(int number); int firstNumber() const; - void setStartingNumberUpdatesExistingItems(bool value); + void setNumberUpdateMode(NumberUpdateMode numberUpdateMode); public slots: - void updateNumbers(); + void updateNumbersIfRequired(); private: int mFirstNumber; QList mItems; - bool mStartingNumberUpdatesExistingItems; + NumberUpdateMode mNumberUpdateMode; void addItemInner(AbstractAnnotationItem *item); + void initItemNumber(AbstractAnnotationItem *item); }; } // namepsace kImageAnnotator diff --git a/src/backend/Config.cpp b/src/backend/Config.cpp index 7fb41831..3bb05ad5 100644 --- a/src/backend/Config.cpp +++ b/src/backend/Config.cpp @@ -28,7 +28,7 @@ Config::Config() : mSaveToolSelection(false), mSmoothFactor(0), mSwitchToSelectToolAfterDrawingItem(false), - mStartingNumberUpdatesExistingItems(true) + mNumberUpdateMode(NumberUpdateMode::UseNextNumber) { mAllTools = QList{ Tools::Pen, @@ -211,16 +211,16 @@ void Config::setSwitchToSelectToolAfterDrawingItem(bool enabled) mSwitchToSelectToolAfterDrawingItem = enabled; } -bool Config::startingNumberUpdatesExistingItems() const +NumberUpdateMode Config::numberUpdateMode() const { - return mStartingNumberUpdatesExistingItems; + return mNumberUpdateMode; } -void Config::setStartingNumberUpdatesExistingItems(bool enabled) +void Config::setNumberUpdateMode(enum NumberUpdateMode numberUpdateMode) { - if (enabled != mStartingNumberUpdatesExistingItems) { - mStartingNumberUpdatesExistingItems = enabled; - emit startingNumberUpdatesExistingItemsChanged(enabled); + if (numberUpdateMode != mNumberUpdateMode) { + mNumberUpdateMode = numberUpdateMode; + emit numberUpdateModeChanged(numberUpdateMode); } } @@ -311,7 +311,7 @@ void Config::initGeneralSettings() mItemShadowEnabled = true; mSmoothFactor = 7; mSwitchToSelectToolAfterDrawingItem = false; - mStartingNumberUpdatesExistingItems = true; + mNumberUpdateMode = NumberUpdateMode::UseNextNumber; } QColor Config::loadToolColor(Tools toolType) diff --git a/src/backend/Config.h b/src/backend/Config.h index 30490e01..ca468f23 100644 --- a/src/backend/Config.h +++ b/src/backend/Config.h @@ -29,6 +29,7 @@ #include "src/common/enum/Tools.h" #include "src/common/enum/FillModes.h" +#include "src/common/enum/NumberUpdateMode.h" #include "src/common/helper/ConfigNameHelper.h" namespace kImageAnnotator { @@ -77,14 +78,14 @@ public slots: bool switchToSelectToolAfterDrawingItem() const; void setSwitchToSelectToolAfterDrawingItem(bool enabled); - bool startingNumberUpdatesExistingItems() const; - void setStartingNumberUpdatesExistingItems(bool enabled); + NumberUpdateMode numberUpdateMode() const; + void setNumberUpdateMode(enum NumberUpdateMode numberUpdateMode); int obfuscationFactor(Tools toolType) const; void setObfuscationFactor(int factor, Tools toolType); signals: - void startingNumberUpdatesExistingItemsChanged(bool value) const; + void numberUpdateModeChanged(enum NumberUpdateMode numberUpdateMode) const; private: QSettings mConfig; @@ -101,7 +102,7 @@ public slots: bool mSaveToolSelection; int mSmoothFactor; bool mSwitchToSelectToolAfterDrawingItem; - bool mStartingNumberUpdatesExistingItems; + NumberUpdateMode mNumberUpdateMode; void initToolSettings(); void initSelectedTool(); diff --git a/src/common/enum/NumberUpdateMode.h b/src/common/enum/NumberUpdateMode.h new file mode 100644 index 00000000..3a30cf8c --- /dev/null +++ b/src/common/enum/NumberUpdateMode.h @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2020 Damir Porobic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef KIMAGEANNOTATOR_NUMBERUPDATEMODE_H +#define KIMAGEANNOTATOR_NUMBERUPDATEMODE_H + +#include + +namespace kImageAnnotator { + +enum class NumberUpdateMode +{ + UseStartingNumber, + UseNextNumber +}; + +} // namespace kImageAnnotator + +#endif // KIMAGEANNOTATOR_NUMBERUPDATEMODE_H diff --git a/src/gui/KImageAnnotator.cpp b/src/gui/KImageAnnotator.cpp index 28175c73..5c7ba827 100644 --- a/src/gui/KImageAnnotator.cpp +++ b/src/gui/KImageAnnotator.cpp @@ -158,10 +158,10 @@ void KImageAnnotator::setSwitchToSelectToolAfterDrawingItem(bool enabled) d->mConfig.setSwitchToSelectToolAfterDrawingItem(enabled); } -void KImageAnnotator::setStartingNumberUpdatesExistingItems(bool enabled) +void KImageAnnotator::setNumberUpdateMode(NumberUpdateMode numberUpdateMode) { Q_D(KImageAnnotator); - d->mConfig.setStartingNumberUpdatesExistingItems(enabled); + d->mConfig.setNumberUpdateMode(numberUpdateMode); } void KImageAnnotator::setTabBarAutoHide(bool enabled) From 7b6abb1c9d7ae3f1fcd1162f0615d2cd106abcda Mon Sep 17 00:00:00 2001 From: Stefan Comanescu Date: Tue, 24 Nov 2020 20:59:05 +0200 Subject: [PATCH 3/4] Address review comment --- src/annotations/core/AnnotationArea.cpp | 6 +----- src/annotations/core/AnnotationItemFactory.cpp | 9 +++++++++ src/annotations/core/AnnotationItemFactory.h | 6 +++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/annotations/core/AnnotationArea.cpp b/src/annotations/core/AnnotationArea.cpp index bde65b1d..65c7b48a 100644 --- a/src/annotations/core/AnnotationArea.cpp +++ b/src/annotations/core/AnnotationArea.cpp @@ -55,11 +55,7 @@ AnnotationArea::AnnotationArea(Config *config, AbstractSettingsProvider *setting connect(&mKeyListener, &KeyEventListener::keyPressed, mKeyHelper, &KeyHelper::keyPress); connect(&mKeyListener, &KeyEventListener::keyReleased, mKeyHelper, &KeyHelper::keyRelease); - connect(mConfig, &Config::numberUpdateModeChanged, - [this](NumberUpdateMode numberUpdateMode) { - mItemFactory->setNumberUpdateMode(numberUpdateMode); - }); - mItemFactory->setNumberUpdateMode(mConfig->numberUpdateMode()); + mItemFactory->setConfig(mConfig); } AnnotationArea::~AnnotationArea() diff --git a/src/annotations/core/AnnotationItemFactory.cpp b/src/annotations/core/AnnotationItemFactory.cpp index 62829d87..96cb5ed8 100644 --- a/src/annotations/core/AnnotationItemFactory.cpp +++ b/src/annotations/core/AnnotationItemFactory.cpp @@ -59,6 +59,15 @@ void AnnotationItemFactory::setNumberUpdateMode(NumberUpdateMode numberUpdateMod mNumberManager->setNumberUpdateMode(numberUpdateMode); } +void AnnotationItemFactory::setConfig(Config *config) +{ + mConfig = config; + + connect(mConfig, &Config::numberUpdateModeChanged, + this, &AnnotationItemFactory::setNumberUpdateMode); + setNumberUpdateMode(mConfig->numberUpdateMode()); +} + AbstractAnnotationItem *AnnotationItemFactory::create(const QPointF &initPosition) { auto toolType = mSettingsProvider->toolType(); diff --git a/src/annotations/core/AnnotationItemFactory.h b/src/annotations/core/AnnotationItemFactory.h index 7b497f66..07770d2a 100644 --- a/src/annotations/core/AnnotationItemFactory.h +++ b/src/annotations/core/AnnotationItemFactory.h @@ -54,16 +54,20 @@ Q_OBJECT void reset(); void setFirstBadgeNumber(int number); int firstBadgeNumber() const; - void setNumberUpdateMode(NumberUpdateMode numberUpdateMode); + void setConfig(Config *config); AbstractAnnotationItem *create(const QPointF &initPosition); AbstractAnnotationItem *create(const QPointF &initPosition, const QPixmap &image); AbstractAnnotationItem *clone(const AbstractAnnotationItem *item); +private slots: + void setNumberUpdateMode(NumberUpdateMode numberUpdateMode); + private: int mNextZValue; AnnotationPropertiesFactory *mPropertiesFactory; AbstractSettingsProvider *mSettingsProvider; NumberManager *mNumberManager; + Config *mConfig; AbstractAnnotationItem *createItem(const QPointF &initPosition, const Tools &toolType, const PropertiesPtr &properties); AbstractAnnotationItem *cloneItem(const AbstractAnnotationItem *item); From 02a8d7dfa87fe02462ae7d159009355996c803f6 Mon Sep 17 00:00:00 2001 From: Stefan Comanescu Date: Fri, 27 Nov 2020 19:15:42 +0200 Subject: [PATCH 4/4] Fix include path --- include/kImageAnnotator/KImageAnnotator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/kImageAnnotator/KImageAnnotator.h b/include/kImageAnnotator/KImageAnnotator.h index 42290fae..714d0d91 100644 --- a/include/kImageAnnotator/KImageAnnotator.h +++ b/include/kImageAnnotator/KImageAnnotator.h @@ -22,7 +22,7 @@ #include -#include +#include "NumberUpdateMode.h" #include namespace kImageAnnotator {