Sophie

Sophie

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

kdebase-3.4.2-55mdk.src.rpm

--- kdebase-3.3.2/kcontrol/filetypes/typeslistitem.cpp--	2005-01-29 14:54:46.941194631 +0100
+++ kdebase-3.3.2/kcontrol/filetypes/typeslistitem.cpp	2005-01-29 15:10:21.725327772 +0100
@@ -343,7 +343,7 @@ void TypesListItem::sync()
           {
             QString path = pService->locateLocal();
             KConfig orig(pService->desktopEntryPath(), true, false, "apps");
-            desktop = orig.copyTo(path);
+            desktop = orig.copyTo(pathToCopyEntry(path, pService->menuId() ));
           }
           desktop->setDesktopGroup();
 
@@ -468,7 +468,7 @@ void TypesListItem::saveServices( KConfi
       {
         QString path = pService->locateLocal();
         KConfig orig(pService->desktopEntryPath(), true, false, "apps");
-        desktop = orig.copyTo(path);
+        desktop = orig.copyTo(pathToCopyEntry(path, pService->menuId() ));
       }
 
       desktop->setDesktopGroup();
@@ -487,6 +487,20 @@ void TypesListItem::saveServices( KConfi
   }
 }
 
+QString TypesListItem::pathToCopyEntry( QString path, QString menuId )
+{
+	if( KStandardDirs::menu_type_by_version()=="kde")
+			return path;
+	QString tmpPath = path.remove( menuId );
+    QString element;
+    element = menuId.remove( "Mandrakelinux-" );
+    element=element.replace( QChar( '-' ), "/" );
+    QString newPath = tmpPath+"Mandrakelinux/"+element;
+	KURL url(newPath);
+    KStandardDirs::makeDir( url.directory() );
+	return newPath;
+}
+
 void TypesListItem::setIcon( const QString& icon )
 {
   m_icon = icon;
--- kdebase-3.3.2/kcontrol/filetypes/typeslistitem.h--	2005-01-29 15:04:37.697185005 +0100
+++ kdebase-3.3.2/kcontrol/filetypes/typeslistitem.h	2005-01-29 15:06:17.072502759 +0100
@@ -92,7 +92,7 @@ private:
   void saveServices( KConfig & profile, QStringList services, const QString & servicetype2 );
   void initMeta( const QString & major );
   void init(KMimeType::Ptr mimetype);
-
+	QString pathToCopyEntry(QString path, QString menuId );
   KMimeType::Ptr m_mimetype;
   unsigned int groupCount:16; // shared between saveServices and sync
   unsigned int m_autoEmbed:2; // 0 yes, 1 no, 2 use group setting