Sophie

Sophie

distrib > Mandriva > 2006.0 > i586 > media > main-src > by-pkgid > a6bc312ce50b5c8d0c51736e58ac32bc > files > 196

kdebase-3.4.2-55mdk.src.rpm

--- kdebase-3.2/kioslave/settings/kio_settings.cc--	2004-02-18 16:01:45.000000000 +0100
+++ kdebase-3.2/kioslave/settings/kio_settings.cc	2004-02-18 16:14:37.000000000 +0100
@@ -48,6 +48,7 @@
    private:
 	DCOPClient *m_dcopClient;
 	RunMode m_runMode;
+     QString mdkMenu;
   };
 
   extern "C" {
@@ -71,7 +72,7 @@ SettingsProtocol::SettingsProtocol( cons
 	// Adjusts which part of the K Menu to virtualize.
 	if( protocol == "programs" ) m_runMode = ProgramsMode;
 	else m_runMode = SettingsMode;
-
+	mdkMenu =  KStandardDirs::menu_type_by_version();
 	m_dcopClient=new DCOPClient();
 	if (!m_dcopClient->attach())
 	{
@@ -89,16 +90,44 @@ KServiceGroup::Ptr SettingsProtocol::fin
 	QString nextPart="";;
 	QStringList rest;
 	kdDebug()<<"Trying harder to find group "<<relPath<<endl;
-	if (relPath.startsWith("Settings/")) {
-		alreadyFound="Settings/";
-		rest=QStringList::split("/",relPath.right(relPath.length()-9));
-		kdDebug()<<"Supported root Settings detected"<<endl;
-		for (int i=0;i<rest.count();i++)
-			kdDebug()<<"Item ("<<*rest.at(i)<<")"<<endl;
-	} else {
-
-		return 0;
-	}
+	if( mdkMenu == "mdk" )
+	  {
+	    if (relPath.startsWith("System/Configuration/KDE/")) {
+	      alreadyFound="System/Configuration/KDE/";
+	      rest=QStringList::split("/",relPath.right(relPath.length()-25));
+	      kdDebug()<<"Supported root Settings detected"<<endl;
+	      for (int i=0;i<rest.count();i++)
+		kdDebug()<<"Item ("<<*rest.at(i)<<")"<<endl;
+	    } else {
+	      
+	      return 0;
+	    }
+	  }
+	else if( mdkMenu == "mdk-simplified" )
+	  {
+	    if (relPath.startsWith("mdk/System/Configuration/KDE/")) {
+	      alreadyFound="mdk/System/Configuration/KDE/";
+	      rest=QStringList::split("/",relPath.right(relPath.length()-29));
+	      kdDebug()<<"Supported root Settings detected"<<endl;
+	      for (int i=0;i<rest.count();i++)
+		kdDebug()<<"Item ("<<*rest.at(i)<<")"<<endl;
+	    } else {      
+	      return 0;
+	    }
+	  }
+	else
+	  {
+	    if (relPath.startsWith("Settings/")) {
+	      alreadyFound="Settings/";
+	      rest=QStringList::split("/",relPath.right(relPath.length()-9));
+	      kdDebug()<<"Supported root Settings detected"<<endl;
+	      for (int i=0;i<rest.count();i++)
+		kdDebug()<<"Item ("<<*rest.at(i)<<")"<<endl;
+	    } else {
+	      
+	      return 0;
+	    }
+	  }
 	while (!rest.isEmpty()) {
 		KServiceGroup::Ptr tmp=KServiceGroup::group(alreadyFound);
 		if (!tmp || !tmp->isValid()) return 0;
@@ -148,7 +177,13 @@ void SettingsProtocol::stat(const KURL& 
 	switch( m_runMode )
 	{
 		case( SettingsMode ):
-			if (!relPath.startsWith("/Settings")) relPath="Settings"+relPath;
+			if (mdkMenu == "kde" && !relPath.startsWith("/Settings")) 
+			  relPath="Settings"+relPath;
+			else if (mdkMenu == "mdk" && !relPath.startsWith("/System/Configuration/KDE")) 
+			  relPath="System/Configuration/KDE"+relPath;
+			else if (mdkMenu == "mdk-simplified" && !relPath.startsWith("/mdk/System/Configuration/KDE")) 
+			  relPath="mdk/System/Configuration/KDE"+relPath;
+
 			else relPath=relPath.right(relPath.length()-1);
 			break;
 
@@ -199,7 +234,13 @@ void SettingsProtocol::listDir(const KUR
 	switch( m_runMode )
 	{
 		case( SettingsMode ):
-			if (!relPath.startsWith("/Settings")) relPath="Settings"+relPath;
+			if (mdkMenu == "kde" && !relPath.startsWith("/Settings")) 
+			  relPath="Settings"+relPath;
+			else if (mdkMenu == "mdk" && !relPath.startsWith("/System/Configuration/KDE")) 
+			  relPath="System/Configuration/KDE"+relPath;
+			else if (mdkMenu == "mdk-simplified" && !relPath.startsWith("/mdk/System/Configuration/KDE")) 
+			  relPath="mdk/System/Configuration/KDE"+relPath;
+
 			else relPath=relPath.right(relPath.length()-1);
 			break;
 
@@ -250,7 +291,7 @@ void SettingsProtocol::listDir(const KUR
                     QString relPath=g->relPath();
 
 		    // Do not display the "Settings" menu group in Programs Mode.
-		    if( (m_runMode == ProgramsMode) && relPath.startsWith( "Settings" ) )
+		    if( (m_runMode == ProgramsMode) && (relPath.startsWith( "Settings" ) || relPath.startsWith( "System/Configuration/KDE" ) || relPath.startsWith( "mdk/System/Configuration/KDE" )))
 		    {
 			kdDebug() << "SettingsProtocol: SKIPPING entry programs:/" << relPath << endl;
 			continue;
@@ -259,7 +300,13 @@ void SettingsProtocol::listDir(const KUR
 		    switch( m_runMode )
 		    {
 			case( SettingsMode ):
+			  if(mdkMenu == "kde" )
 			    relPath=relPath.right(relPath.length()-9); //Settings/ ==9
+			  else if(mdkMenu == "mdk" )
+			    relPath=relPath.right(relPath.length()-25); //Settings/ ==9
+			  else if(mdkMenu == "mdk-simplied" )
+			    relPath=relPath.right(relPath.length()-29); //Settings/ ==9
+
 			    kdDebug() << "SettingsProtocol: adding entry settings:/" << relPath << endl;
 			    createDirEntry(entry, groupCaption, "settings:/"+relPath, "inode/directory",g->icon());
 			    break;