File khelpcenter-fallback-to-kde4-docs.patch of Package khelpcenter5
diff --git a/toc.cpp b/toc.cpp
index 929c2d9..f4f3306 100644
--- a/toc.cpp
+++ b/toc.cpp
@@ -89,10 +89,12 @@ void TOC::build( const QString &file )
QFileInfo fileInfo( file );
QString fileName = fileInfo.absoluteFilePath();
#if KCOREADDONS_VERSION >= QT_VERSION_CHECK(5, 36, 0)
- const QStringList resourceDirs = KDocTools::documentationDirs();
+ QStringList resourceDirs = KDocTools::documentationDirs();
#else
- const QStringList resourceDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "doc/HTML", QStandardPaths::LocateDirectory);
+ QStringList resourceDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "doc/HTML", QStandardPaths::LocateDirectory);
#endif
+ QStringList fallbackresourceDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "doc/kde/HTML");
+ resourceDirs.append(fallbackresourceDirs);
QStringList::ConstIterator it = resourceDirs.begin();
QStringList::ConstIterator end = resourceDirs.end();
for ( ; it != end; ++it ) {
diff --git a/view.cpp b/view.cpp
index 0df177e..b3e6823 100644
--- a/view.cpp
+++ b/view.cpp
@@ -125,6 +125,19 @@ QString View::langLookup( const QString &fname )
}
}
+ // assemble the local KDE4 search paths
+ const QStringList localkde4Doc = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
+
+ // look up the different languages
+ for (int id=localkde4Doc.count()-1; id >= 0; --id)
+ {
+ QDir kde4d(QStringLiteral("%1/doc/KDE/HTML/").arg(localkde4Doc[id]));
+
+ foreach(const QString& entry, kde4d.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) {
+ search.append(kde4d.absoluteFilePath(entry+'/'+fname));
+ }
+ }
+
// try to locate the file
for (QStringList::ConstIterator it = search.constBegin(); it != search.constEnd(); ++it) {