[okular] [Bug 479683] New: Okular does not start due to missing okularpart
bugzilla_noreply at kde.org
bugzilla_noreply at kde.org
Fri Jan 12 07:19:20 GMT 2024
https://bugs.kde.org/show_bug.cgi?id=479683
Bug ID: 479683
Summary: Okular does not start due to missing okularpart
Classification: Applications
Product: okular
Version: 24.01.90
Platform: Arch Linux
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: general
Assignee: okular-devel at kde.org
Reporter: madcatx at atlas.cz
Target Milestone: ---
Since KDE 6 RC1 Okular does not start with "kf.coreaddons: "Could not find
plugin okularpart" message in the console and the corresponding UI dialog. On
Arch Linux, the "okularpart.so" is installed in
"/usr/lib/qt6/plugins/kf6/parts" which is a path that Okular does not consider
when it attempts to load the plugin. There are other plugins installed on the
same path and applications that use them seem to work fine, which makes me
think that this might not be just a packaging issue.
FWIW, I can get Okular to work by doing this:
diff --git a/shell/shell.cpp b/shell/shell.cpp
index 0a006d5ca..cf0d57177 100644
--- a/shell/shell.cpp
+++ b/shell/shell.cpp
@@ -183,6 +183,25 @@ private:
QWidget *m_dumbTitleWidget = nullptr;
};
+static KPluginFactory::Result<KPluginFactory> findOkularPart()
+{
+ auto result =
KPluginFactory::loadFactory(KPluginMetaData(QStringLiteral("okularpart")));
+ if (result) {
+ return result;
+ } else {
+ auto metadatas = KPluginMetaData::findPlugins(
+ QStringLiteral("kf6/parts"),
+ [](const auto &md) { return md.name() == QStringLiteral("Okular");
}
+ );
+
+ if (metadatas.isEmpty()) {
+ return result;
+ }
+
+ return KPluginFactory::loadFactory(metadatas.at(0));
+ }
+}
+
Shell::Shell(const QString &serializedOptions)
: KParts::MainWindow()
, m_menuBarWasShown(true)
@@ -201,7 +220,7 @@ Shell::Shell(const QString &serializedOptions)
// name which is a bad idea usually.. but it's alright in this
// case since our Part is made for this Shell
- const auto result =
KPluginFactory::loadFactory(KPluginMetaData(QStringLiteral("okularpart")));
+ const auto result = findOkularPart();
if (!result) {
// if we couldn't find our Part, we exit since the Shell by
Arch Linux
KF6 5.248.0
Plasma 5.92.0
Okular 24.01.90
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Okular-devel
mailing list