Branch: master

47d28387 2014-10-09 16:14:40 Timothy Pearson
Load proper handbook section when a TDEControl module is loaded via tdecmshell instead of kcontrol
This relates to Bug 1850
M kdoctools/customization/entities/general.entities
M tdeutils/kcmultidialog.cpp
M tdeutils/tdecmoduleproxy.cpp
M tdeutils/tdecmoduleproxy.h
diff --git a/kdoctools/customization/entities/general.entities b/kdoctools/customization/entities/general.entities
index e21e2e5..c724031 100644
--- a/kdoctools/customization/entities/general.entities
+++ b/kdoctools/customization/entities/general.entities
@@ -424,3 +424,7 @@
 <!ENTITY quanta "<application>Quanta</application>">
 
 <!ENTITY tde-team "The &tde; Team">
+
+<!ENTITY tde-release-version "R14.0.0 [DEVELOPMENT]">
+<!ENTITY tde-release-date "October  9, 2014">
+<!ENTITY tde-copyright-date "2010-2014">
diff --git a/tdeutils/kcmultidialog.cpp b/tdeutils/kcmultidialog.cpp
index 6a07404..0ba07fe 100644
--- a/tdeutils/kcmultidialog.cpp
+++ b/tdeutils/kcmultidialog.cpp
@@ -186,12 +186,18 @@
 
     int curPageIndex = activePageIndex();
     ModuleList::Iterator end = m_modules.end();
-    for( ModuleList::Iterator it = m_modules.begin(); it != end; ++it )
+    for( ModuleList::Iterator it = m_modules.begin(); it != end; ++it ) {
         if( pageIndex( ( TQWidget * )( *it ).kcm->parent() ) == curPageIndex )
         {
             docPath = ( *it ).kcm->moduleInfo().docPath();
+            TDECModuleProxy * m = ( *it ).kcm;
+            TQString section = m->handbookSection();
+            if (section != "") {
+                docPath = TQString( "%1#%2" ).arg( docPath ).arg( section );
+            }
             break;
         }
+    }
 
     KURL url( KURL("help:/"), docPath );
 
diff --git a/tdeutils/tdecmoduleproxy.cpp b/tdeutils/tdecmoduleproxy.cpp
index eeac43b..f1c91e4 100644
--- a/tdeutils/tdecmoduleproxy.cpp
+++ b/tdeutils/tdecmoduleproxy.cpp
@@ -588,14 +588,26 @@
 
 const TDEAboutData * TDECModuleProxy::aboutData() const
 {
-	if( !d->rootMode )
+	if( !d->rootMode ) {
 		return realModule() ? realModule()->aboutData() : 0;
-	else
-	/* This needs fixing, perhaps cache a TDEAboutData copy 
+	}
+	else {
+	/* This needs fixing, perhaps cache a TDEAboutData copy
 	 * while in root mode? */
 		return 0;
-		
+	}
+}
 
+TQString TDECModuleProxy::handbookSection() const
+{
+	if( !d->rootMode ) {
+		return realModule() ? realModule()->handbookSection() : TQString::null;
+	}
+	else {
+	/* This needs fixing, perhaps cache a TDEAboutData copy
+	 * while in root mode? */
+		return TQString::null;
+	}
 }
 
 int TDECModuleProxy::buttons() const
diff --git a/tdeutils/tdecmoduleproxy.h b/tdeutils/tdecmoduleproxy.h
index 728404f..3d2b1ca 100644
--- a/tdeutils/tdecmoduleproxy.h
+++ b/tdeutils/tdecmoduleproxy.h
@@ -158,6 +158,11 @@
 	const TDEAboutData * aboutData() const;
 
 	/**
+	 * @return the module's handbookSection()
+	 */
+	TQString handbookSection() const;
+
+	/**
 	 * @return what buttons the module
 	 * needs
 	 */