From 7e4a4d78e3cbf8d278c01a6b03a9d555a861ccfc Mon Sep 17 00:00:00 2001 From: Jakub Melka Date: Sat, 29 Jun 2024 16:32:14 +0200 Subject: [PATCH] Issue #189: Enable plugins by default --- Pdf4QtLibGui/pdfeditormainwindow.h | 2 +- Pdf4QtLibGui/pdfprogramcontroller.cpp | 13 +++++++++++-- Pdf4QtLibGui/pdfprogramcontroller.h | 1 + Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp | 5 +++++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Pdf4QtLibGui/pdfeditormainwindow.h b/Pdf4QtLibGui/pdfeditormainwindow.h index c08784c..f410009 100644 --- a/Pdf4QtLibGui/pdfeditormainwindow.h +++ b/Pdf4QtLibGui/pdfeditormainwindow.h @@ -84,7 +84,7 @@ public: virtual QMenu* addToolMenu(QString name) override; virtual void setStatusBarMessage(QString message, int time) override; virtual void setDocument(const pdf::PDFModifiedDocument& document) override; - virtual void adjustToolbar(QToolBar* toolbar) override; + virtual void adjustToolbar(QToolBar* toolbar) override final; virtual pdf::PDFTextSelection getSelectedText() const override; protected: diff --git a/Pdf4QtLibGui/pdfprogramcontroller.cpp b/Pdf4QtLibGui/pdfprogramcontroller.cpp index f981954..ec75f95 100644 --- a/Pdf4QtLibGui/pdfprogramcontroller.cpp +++ b/Pdf4QtLibGui/pdfprogramcontroller.cpp @@ -373,7 +373,8 @@ PDFProgramController::PDFProgramController(QObject* parent) : m_actionComboBox(nullptr), m_isBusy(false), m_isFactorySettingsBeingRestored(false), - m_progress(nullptr) + m_progress(nullptr), + m_loadAllPlugins(false) { connect(&m_fileWatcher, &QFileSystemWatcher::fileChanged, this, &PDFProgramController::onFileChanged); } @@ -1616,6 +1617,7 @@ void PDFProgramController::readSettings(Settings settingsFlags) { // Load allowed plugins settings.beginGroup("Plugins"); + m_loadAllPlugins = !settings.contains("EnabledPlugins"); m_enabledPlugins = settings.value("EnabledPlugins").toStringList(); settings.endGroup(); } @@ -2190,12 +2192,18 @@ void PDFProgramController::loadPlugins() m_plugins.back().pluginFile = availablePlugin; m_plugins.back().pluginFileWithPath = pluginFileName; - if (!m_enabledPlugins.contains(m_plugins.back().name)) + QString pluginName = m_plugins.back().name; + if (!m_enabledPlugins.contains(pluginName) && !m_loadAllPlugins) { loader.unload(); continue; } + if (m_loadAllPlugins) + { + m_enabledPlugins << pluginName; + } + pdf::PDFPlugin* plugin = qobject_cast(loader.instance()); if (plugin) { @@ -2203,6 +2211,7 @@ void PDFProgramController::loadPlugins() } } } + m_loadAllPlugins = false; auto comparator = [](const std::pair& l, const std::pair& r) { diff --git a/Pdf4QtLibGui/pdfprogramcontroller.h b/Pdf4QtLibGui/pdfprogramcontroller.h index 6510e49..d88ca6d 100644 --- a/Pdf4QtLibGui/pdfprogramcontroller.h +++ b/Pdf4QtLibGui/pdfprogramcontroller.h @@ -452,6 +452,7 @@ private: pdf::PDFProgress* m_progress; QStringList m_enabledPlugins; + bool m_loadAllPlugins; pdf::PDFPluginInfos m_plugins; std::vector> m_loadedPlugins; }; diff --git a/Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp b/Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp index 7b37898..dc934e5 100644 --- a/Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp +++ b/Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp @@ -258,6 +258,11 @@ void PDFWidgetUtils::checkMenuAccessibility(QMenu* menu) QString text = action->text(); int i = text.indexOf(QChar('&')); + if (text.isEmpty()) + { + continue; + } + if (i == -1) { actionsWithNoAmpersands << text;