Sophie

Sophie

distrib > Mandriva > 2006.0 > i586 > by-pkgid > ee5019e51831f214d532979b59ea2d61 > files > 54

kdelibs-3.4.2-31.4.20060mdk.src.rpm

*** kdelibs-3.4.2/kdecore/kstandarddirs.h.orig	2005-08-22 13:47:11.000000000 +0200
--- kdelibs-3.4.2/kdecore/kstandarddirs.h	2005-08-22 14:10:05.000000000 +0200
***************
*** 595,600 ****
--- 595,612 ----
  	 */
  	static QString realPath(const QString &dirname);
  
+ 	//------------------------------
+ 	// Mandriva only patches
+ 	
+ 	static QString menu_type_by_version();
+ 	static QString default_menu_type_by_version();
+ 	static QString mandrake_merge_directory();
+ 	
+ 	enum distroVersionType { DOWNLOAD = 0, POWERPACK, DISCOVERY, POWERPACKPLUS };
+ 	static distroVersionType mandrake_distro_version();
+ 	
+ 	//------------------------------
+ 
  	/**
  	 * Expands all symbolic links and resolves references to
  	 * '/./', '/../' and extra  '/' characters in @p filename
*** kdelibs-3.4.2/kdecore/kstandarddirs.cpp.orig	2005-08-22 13:53:10.000000000 +0200
--- kdelibs-3.4.2/kdecore/kstandarddirs.cpp	2005-08-22 14:22:54.000000000 +0200
***************
*** 1017,1022 ****
--- 1017,1023 ----
  }
  
  QString KStandardDirs::kde_default(const char *type) {
+ 	QString typeMenu = menu_type_by_version();
      if (!strcmp(type, "data"))
  	return "share/apps/";
      if (!strcmp(type, "html"))
***************
*** 1054,1062 ****
      if (!strcmp(type, "qtplugins"))
          return "lib" KDELIBSUFF "/kde3/plugins";
      if (!strcmp(type, "xdgdata-apps"))
!         return "applications/";
      if (!strcmp(type, "xdgdata-dirs"))
!         return "desktop-directories/";
      if (!strcmp(type, "xdgconf-menu"))
          return "menus/";
      if (!strcmp(type, "kcfg"))
--- 1064,1090 ----
      if (!strcmp(type, "qtplugins"))
          return "lib" KDELIBSUFF "/kde3/plugins";
      if (!strcmp(type, "xdgdata-apps"))
! 	 {
! 		 if( typeMenu == "kde" )
! 			 return "applications/";
! 		 else if( typeMenu == "mdk" )
! 			 return "applications/";
! 		 else if( typeMenu == "mdk-simplified")
! 			 return "simplified/applications/";
! 		 else
! 			 return "applications/";
! 	 }
      if (!strcmp(type, "xdgdata-dirs"))
! 	 {
! 		 if( typeMenu == "kde" )
! 			 return "desktop-directories/";
! 		 else if( typeMenu == "mdk" )
! 			 return "desktop-directories/";
! 		 else if( typeMenu == "mdk-simplified")
! 			 return "simplified/desktop-directories/";
! 		 else
! 			 return "desktop-directories/";
! 	 }
      if (!strcmp(type, "xdgconf-menu"))
          return "menus/";
      if (!strcmp(type, "kcfg"))
***************
*** 1671,1673 ****
--- 1699,1831 ----
      QString file = filename.mid(slash);
      return inst->dirs()->saveLocation(type, dir, createDir) + file;
  }
+ 
+ // Mandriva only changes
+ 
+ QString KStandardDirs::menu_type_by_version()
+ {
+ 	QString kde_menu;
+ 	kde_menu=QString("/etc/menu/disable_mdk_customization");
+ 	
+ 	QString mdk_menu_simplified;
+ 	mdk_menu_simplified=QString("/etc/menu/enable_simplified");
+ 	
+ 	QString mdk_kde_menu_users=QDir::homeDirPath ()+"/"+".menu/"+QString("enable_mdk_customization");
+ 	QString kde_menu_users=QDir::homeDirPath ()+"/"+".menu/"+QString("disable_mdk_customization");
+ 	QString mdk_menu_simplified_users=QDir::homeDirPath ()+"/"+".menu/"+QString("enable_simplified");
+   
+ 	// Root user
+ 	if( getuid()==0)
+ 	{
+ 		if( QFile(kde_menu_users).exists())
+ 			return "kde";
+ 		else if(QFile(mdk_kde_menu_users).exists())
+ 			return "mdk";
+ 		else if(QFile(mdk_menu_simplified_users).exists())
+ 			return "mdk-simplified";
+ 		else
+ 		{
+ 			if (QFile(kde_menu).exists())
+ 				return "kde";
+ 			else if(QFile(mdk_menu_simplified).exists())
+ 				return "mdk-simplified";
+ 			else
+ 				return default_menu_type_by_version();
+ 		}
+ 	}
+ 	else //users
+ 	{
+ 		QString path;
+ 		if( QFile(kde_menu_users).exists())
+ 			path="kde";
+ 		else if(QFile(mdk_kde_menu_users).exists())
+ 			path="mdk";
+ 		else if(QFile(mdk_menu_simplified_users).exists())
+ 			path="mdk-simplified";
+ 		else if(QFile(kde_menu).exists())
+ 			path="kde";
+ 		else if(QFile(mdk_menu_simplified).exists())
+ 			path="mdk-simplified";
+ 		else
+ 			path=default_menu_type_by_version();
+ 		return path;
+ 	}
+ 	return QString("mdk");
+ }
+ 
+ QString KStandardDirs::default_menu_type_by_version()
+ {
+ 	QFile file( "/etc/sysconfig/system" );
+ 	if( file.exists())
+ 	{
+ 		QString menuType("mdk");
+ 		if ( file.open( IO_ReadOnly ) ) {
+ 			QTextStream stream( &file );
+ 			QString line;
+ 			while ( !stream.atEnd() )
+ 			{
+ 				line = stream.readLine(); // line of text excluding '\n'
+ 				if( line.contains("META_CLASS=PowerPack")!=0)
+ 				{
+ 					menuType = "mdk";
+ 					break;
+ 				}
+ 				else if( line.contains("META_CLASS=desktop")!=0)
+ 				{
+ 					menuType = "mdk-simplified";
+ 					break;
+ 				}
+ 				else if( line.contains("META_CLASS=server")!=0)
+ 				{
+ 					menuType = "mdk";
+ 					break;
+ 				}
+ 			}
+ 			file.close();
+ 			return menuType;
+ 		}
+ 	}
+ 	return QString("kde");
+ }
+ 
+ KStandardDirs::distroVersionType KStandardDirs::mandrake_distro_version()
+ {
+ 	QFile file( "/etc/sysconfig/system" );
+ 	if( file.exists())
+ 	{
+ 		KStandardDirs::distroVersionType type=DOWNLOAD;
+ 		if ( file.open( IO_ReadOnly ) ) {
+ 			QTextStream stream( &file );
+ 			QString line;
+ 			while ( !stream.atEnd() )
+ 			{
+ 				line = stream.readLine(); // line of text excluding '\n'
+ 				if( (line.contains("META_CLASS=PowerPack")!=0) || (line.contains("META_CLASS=powerpack")!=0))
+ 				{
+ 					type = POWERPACK;
+ 					break;
+ 				}
+ 				else if( line.contains("META_CLASS=desktop")!=0)
+ 				{
+ 					type = DISCOVERY;
+ 					break;
+ 				}
+ 				else if( line.contains("META_CLASS=server")!=0)
+ 				{
+ 					type = POWERPACKPLUS;
+ 					break;
+ 				}
+ 			}
+ 			file.close();
+ 			return type;
+ 		}
+ 	}
+ 	return DOWNLOAD;
+ }
+ 
+ QString KStandardDirs::mandrake_merge_directory()
+ {
+ 	return QDir::homeDirPath() + "/.kde/DESKTOP_ENTRY/";
+ }
+ 
+