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