diff --git a/CMakeLists.txt b/CMakeLists.txt index 040f89115..60d27d916 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -437,7 +437,7 @@ ki18n_wrap_ui(okularpart_SRCS conf/dlgpresentationbase.ui ) -kconfig_add_kcfg_files(okularpart_SRCS conf/settings.kcfgc) +kconfig_add_kcfg_files(okularpart_SRCS GENERATE_MOC conf/settings.kcfgc) add_library(okularpart SHARED ${okularpart_SRCS}) generate_export_header(okularpart BASE_NAME okularpart) diff --git a/conf/okular.kcfg b/conf/okular.kcfg index b15c1ade2..ddf56f01e 100644 --- a/conf/okular.kcfg +++ b/conf/okular.kcfg @@ -5,6 +5,8 @@ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" > kuser.h + + true @@ -116,6 +118,7 @@ } builtinAnnotationTools + @@ -154,6 +157,7 @@ } quickAnnotationTools + true diff --git a/mobile/components/CMakeLists.txt b/mobile/components/CMakeLists.txt index 58ca15974..ccad4c9fc 100644 --- a/mobile/components/CMakeLists.txt +++ b/mobile/components/CMakeLists.txt @@ -20,7 +20,7 @@ set(okular_SRCS okularsingleton.cpp ) -kconfig_add_kcfg_files(okular_SRCS ${CMAKE_SOURCE_DIR}/conf/settings_mobile.kcfgc) +kconfig_add_kcfg_files(okular_SRCS GENERATE_MOC ${CMAKE_SOURCE_DIR}/conf/settings_mobile.kcfgc) add_library(okularplugin SHARED ${okular_SRCS}) set_target_properties(okularplugin PROPERTIES COMPILE_DEFINITIONS "okularpart_EXPORTS") diff --git a/ui/annotationactionhandler.cpp b/ui/annotationactionhandler.cpp index 96336457d..07f9247b9 100644 --- a/ui/annotationactionhandler.cpp +++ b/ui/annotationactionhandler.cpp @@ -726,9 +726,13 @@ void AnnotationActionHandler::setupAnnotationToolBarVisibilityAction() connect(d->aShowToolBar, &QAction::toggled, this, [this](bool checked) { d->slotToolBarVisibilityChanged(checked); }); } -void AnnotationActionHandler::reparseTools() +void AnnotationActionHandler::reparseBuiltinToolsConfig() { d->parseTool(d->selectedTool); +} + +void AnnotationActionHandler::reparseQuickToolsConfig() +{ d->populateQuickAnnotations(); } diff --git a/ui/annotationactionhandler.h b/ui/annotationactionhandler.h index 8d9f95fcd..3e7338e03 100644 --- a/ui/annotationactionhandler.h +++ b/ui/annotationactionhandler.h @@ -39,7 +39,8 @@ public: * selected, an annotation property (line width, colors, opacity, font) is modified. */ void setupAnnotationToolBarVisibilityAction(); - void reparseTools(); + void reparseBuiltinToolsConfig(); + void reparseQuickToolsConfig(); void setToolsEnabled(bool on); void setTextToolsEnabled(bool on); void deselectAllAnnotationActions(); diff --git a/ui/pageviewannotator.cpp b/ui/pageviewannotator.cpp index 7696df401..f842a6d60 100644 --- a/ui/pageviewannotator.cpp +++ b/ui/pageviewannotator.cpp @@ -733,26 +733,40 @@ PageViewAnnotator::PageViewAnnotator(PageView *parent, Okular::Document *storage , m_lockedItem(nullptr) { reparseConfig(); + reparseBuiltinToolsConfig(); + reparseQuickToolsConfig(); + connect(Okular::Settings::self(), &Okular::Settings::builtinAnnotationToolsChanged, this, &PageViewAnnotator::reparseBuiltinToolsConfig); + connect(Okular::Settings::self(), &Okular::Settings::quickAnnotationToolsChanged, this, &PageViewAnnotator::reparseQuickToolsConfig); } void PageViewAnnotator::reparseConfig() +{ + m_continuousMode = Okular::Settings::annotationContinuousMode(); + + if (Okular::Settings::identityAuthor().isEmpty()) + detachAnnotation(); +} + +void PageViewAnnotator::reparseBuiltinToolsConfig() { // Read tool list from configuration. It's a list of XML elements if (!m_builtinToolsDefinition) m_builtinToolsDefinition = new AnnotationTools(); m_builtinToolsDefinition->setTools(Okular::Settings::builtinAnnotationTools()); + if (m_actionHandler) + m_actionHandler->reparseBuiltinToolsConfig(); +} + +void PageViewAnnotator::reparseQuickToolsConfig() +{ + // Read tool list from configuration. It's a list of XML elements if (!m_quickToolsDefinition) m_quickToolsDefinition = new AnnotationTools(); m_quickToolsDefinition->setTools(Okular::Settings::quickAnnotationTools()); - m_continuousMode = Okular::Settings::annotationContinuousMode(); - - if (Okular::Settings::identityAuthor().isEmpty()) - detachAnnotation(); - if (m_actionHandler) - m_actionHandler->reparseTools(); + m_actionHandler->reparseQuickToolsConfig(); } PageViewAnnotator::~PageViewAnnotator() diff --git a/ui/pageviewannotator.h b/ui/pageviewannotator.h index 6e3dd432b..6528c5939 100644 --- a/ui/pageviewannotator.h +++ b/ui/pageviewannotator.h @@ -137,6 +137,8 @@ Q_SIGNALS: void toolSelected(); private: + void reparseBuiltinToolsConfig(); + void reparseQuickToolsConfig(); // save the annotation tools to Okular settings void saveAnnotationTools(); // returns the engine QDomElement of the the currently active tool