https://bugs.kde.org/show_bug.cgi?id=405651
Bug ID: 405651
Summary: kcmultidialog/kcmshell5 help buttons broken; depend on
khelpcenter
Product: frameworks-kcmutils
Version: unspecified
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
khelpcenter lives in applications and as such cannot be expected to be
available for frameworks. yet kcmultidialog wants to always launch it for
documentation paths which aren't absolutely specifying a scheme.
e.g. kinfocenter's memory module sets
X-DocPath=kinfocenter/index.html#kcm_memory
which kcmmultidialog will QUrl as 'help:/kinfocenter/index.html#kcm_memory' and
as a help:/ URL then *always* runs through khelpcenter, which may not be
installed (and the help button will be enabled but do nothing because of this).
Kcmmultidialog probably should run all urls through QDesktopServices, which
should have an url handler installed by kguiaddons (see UrlHandler.cpp in
kguiaddons). IOW: drop the explicitly call to khelpcenter
void KCMultiDialog::slotHelpClicked()
{
...
const QUrl docUrl = QUrl(QStringLiteral("help:/")).resolved(QUrl(docPath));
// same code as in KHelpClient::invokeHelp
const QString docUrlScheme = docUrl.scheme();
if (docUrlScheme == QLatin1String("help") || docUrlScheme ==
QLatin1String("man") || docUrlScheme == QLatin1String("info")) {
QProcess::startDetached(QStringLiteral("khelpcenter"), QStringList() <<
docUrl.toString());
} else {
QDesktopServices::openUrl(docUrl);
}
}
--
You are receiving this mail because:
You are watching all bug changes.