--- 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