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: kdelibs-b...@kde.org Reporter: sit...@kde.org 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.