summaryrefslogtreecommitdiffstats
path: root/opensuse/core/tdelibs.old/fix-gnome-help-support.diff
diff options
context:
space:
mode:
authorRobert Xu <[email protected]>2012-03-31 14:28:06 -0400
committerRobert Xu <[email protected]>2012-03-31 14:28:06 -0400
commit59dd46ef985a719579132efa6a9aa49bfeeae112 (patch)
tree93d8c721ff263e67aaf59e364496862872ded8fb /opensuse/core/tdelibs.old/fix-gnome-help-support.diff
parentc141f0bc29b6e2eeda5ca08a043d26546a1427f9 (diff)
downloadtde-packaging-59dd46ef985a719579132efa6a9aa49bfeeae112.tar.gz
tde-packaging-59dd46ef985a719579132efa6a9aa49bfeeae112.zip
better late than never, hm...
Diffstat (limited to 'opensuse/core/tdelibs.old/fix-gnome-help-support.diff')
-rw-r--r--opensuse/core/tdelibs.old/fix-gnome-help-support.diff130
1 files changed, 130 insertions, 0 deletions
diff --git a/opensuse/core/tdelibs.old/fix-gnome-help-support.diff b/opensuse/core/tdelibs.old/fix-gnome-help-support.diff
new file mode 100644
index 000000000..c9778f9bf
--- /dev/null
+++ b/opensuse/core/tdelibs.old/fix-gnome-help-support.diff
@@ -0,0 +1,130 @@
+Index: kdoctools/kio_help.cpp
+===================================================================
+--- kdoctools/kio_help.cpp.orig
++++ kdoctools/kio_help.cpp
+@@ -44,7 +44,27 @@ QString HelpProtocol::langLookup(const Q
+ // assemble the local search paths
+ const QStringList localDoc = KGlobal::dirs()->resourceDirs("html");
+
++ kdDebug( 7119 ) << "Looking up help for: " << fname << endl;
++ QString _fname = fname;
++
++ QString path;
++ int slash = _fname.findRev ('/');
++ if (slash == -1 || slash == 0) {
++ path = _fname;
++ _fname = "";
++ } else {
++ path = _fname.left (slash);
++ _fname = _fname.right (_fname.length() - slash);
++ }
++
+ QStringList langs = KGlobal::locale()->languageList();
++ QStringList::ConstIterator lang;
++ for (lang = langs.begin(); lang != langs.end(); ++lang)
++ if ((*lang).left(2) == "en")
++ search.append(QString("/usr/share/gnome/help/%1/C%2").arg(path).arg(_fname));
++ else
++ search.append(QString("/usr/share/gnome/help/%1/%2%3").arg(path).arg(*lang).arg(_fname));
++
+ langs.append( "en" );
+ langs.remove( "C" );
+
+@@ -60,7 +80,7 @@ QString HelpProtocol::langLookup(const Q
+ {
+ QStringList::ConstIterator lang;
+ for (lang = langs.begin(); lang != langs.end(); ++lang)
+- search.append(QString("%1%2/%3").arg(localDoc[id], *lang, fname));
++ search.append(QString("%1%2/%3").arg(localDoc[id], *lang, path + _fname));
+ }
+
+ // try to locate the file
+@@ -81,6 +101,15 @@ QString HelpProtocol::langLookup(const Q
+ if (info.exists() && info.isFile() && info.isReadable())
+ return *it;
+ }
++
++ if ( ( *it ).right( 5 ) == ".html" )
++ {
++ QString file = (*it).left((*it).findRev('/')) + "/" + path + ".xml";
++ kdDebug( 7119 ) << "Looking for help in: " << file << endl;
++ info.setFile(file);
++ if (info.exists() && info.isFile() && info.isReadable())
++ return *it;
++ }
+ }
+
+
+@@ -100,7 +129,7 @@ QString HelpProtocol::lookupFile(const Q
+ result = langLookup(path);
+ if (result.isEmpty())
+ {
+- result = langLookup(path+"/index.html");
++ result = langLookup(path + "/index.html");
+ if (!result.isEmpty())
+ {
+ KURL red( "help:/" );
+@@ -190,12 +219,26 @@ void HelpProtocol::get( const KURL& url
+ }
+ } else {
+ QString docbook_file = file.left(file.findRev('/')) + "/index.docbook";
++ int last_slash = file.findRev('/');
++ if (last_slash != -1 && last_slash != 0) {
++ int slash2 = file.findRev('/', last_slash -1);
++ if (slash2 != -1 && slash2 != 0) {
++ int slash3 = file.findRev('/', slash2 - 1);
++ if (slash3 != -1) {
++ QString xml_file = file.left(file.findRev('/')) + "/" + file.mid(slash3 + 1, slash2 - (slash3 + 1)) + ".xml";
++ kdDebug( 7119 ) << "xml_file " << xml_file << endl;
++ QFileInfo fi(xml_file);
++ if (fi.exists())
++ docbook_file = xml_file;
++ }
++ }
++ }
+ if (!KStandardDirs::exists(file)) {
+ file = docbook_file;
+ } else {
+ QFileInfo fi(file);
+ if (fi.isDir()) {
+- file = file + "/index.docbook";
++ file = docbook_file;
+ } else {
+ if ( file.right( 5 ) != ".html" || !compareTimeStamps( file, docbook_file ) ) {
+ get_file( target );
+@@ -238,7 +281,11 @@ void HelpProtocol::get( const KURL& url
+ mParsed = transform(file, locate("dtd", "customization/kde-chunk.xsl"));
+ if ( !mParsed.isEmpty() ) {
+ infoMessage( i18n( "Saving to cache" ) );
+- QString cache = file.left( file.length() - 7 );
++ QString cache;
++ if (file.endsWith(".xml"))
++ cache = file.left( file.length() - strlen ("xml") );
++ else
++ cache = file.left( file.length() - strlen ("docbook") );
+ saveToCache( mParsed, locateLocal( "cache",
+ "kio_help" + cache +
+ "cache.bz2" ) );
+Index: kdoctools/xslt.cpp
+===================================================================
+--- kdoctools/xslt.cpp.orig
++++ kdoctools/xslt.cpp
+@@ -278,10 +278,16 @@ static bool readCache( const QString &fi
+ QString lookForCache( const QString &filename )
+ {
+ kdDebug() << "lookForCache " << filename << endl;
+- assert( filename.endsWith( ".docbook" ) );
++ assert( filename.endsWith( ".docbook" ) || filename.endsWith( ".xml" ) );
+ assert( filename.at( 0 ) == '/' );
+
+- QString cache = filename.left( filename.length() - 7 );
++ QString cache;
++
++ if (filename.endsWith( ".xml" ))
++ cache = filename.left( filename.length() - strlen ("xml") );
++ else
++ cache = filename.left( filename.length() - strlen ("docbook") );
++
+ QString output;
+ if ( readCache( filename, cache + "cache.bz2", output) )
+ return output;