*** 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() + { + QCString metaclass = getenv("META_CLASS"); + + QString menuType("kde"); + if(!metaclass.isEmpty()) + { + if(metaclass.lower() == "powerpack") + menuType ="mdk"; + else if(metaclass == "desktop") + menuType ="mdk-simplified"; + else if(metaclass == "server") + menuType ="mdk"; + } + return menuType; + + + + + + + + + + + + + + + + + + + } + + 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/"; + } + +