Sophie

Sophie

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

kdelibs-3.4.2-31.4.20060mdk.src.rpm

--- kdelibs-3.4.0/kio/kfile/kurlbar.h--	2005-04-11 04:25:37.201073354 -0400
+++ kdelibs-3.4.0/kio/kfile/kurlbar.h	2005-04-11 04:25:53.840272936 -0400
@@ -384,6 +384,8 @@ public:
      */
     bool isVertical() const { return orientation() == Vertical; }
 
+	void  createItemOnMDKMerge( const KURL &url, const QString & description, const QString &icon );
+
 public slots:
     /**
      * Makes the item with the url @p url the current item. Does nothing
--- kdelibs-3.4.0/kio/kfile/kurlbar.cpp--	2005-04-11 04:23:30.670547904 -0400
+++ kdelibs-3.4.0/kio/kfile/kurlbar.cpp	2005-04-11 04:25:32.328014860 -0400
@@ -30,6 +30,8 @@
 #include <qvbox.h>
 #include <qwhatsthis.h>
 
+#include <kstandarddirs.h>
+#include <kdesktopfile.h>
 #include <kaboutdata.h>
 #include <kconfig.h>
 #include <kdebug.h>
@@ -704,6 +705,8 @@ void KURLBar::slotDropped( QDropEvent *e
         KURL::List::Iterator it = urls.begin();
         for ( ; it != urls.end(); ++it ) {
             (void) insertItem( *it, description, appLocal, icon );
+			if( !appLocal)
+					createItemOnMDKMerge( url, description, icon );
             m_isModified = true;
             updateGeometry();
         }
@@ -787,7 +790,7 @@ bool KURLBar::editItem( KURLBarItem *ite
 {
     if ( !item || !item->isPersistent() ) // should never happen tho
         return false;
-
+	QString oldDescription = item->description();
     KURL url            = item->url();
     QString description = item->description();
     QString icon        = item->icon();
@@ -798,7 +801,9 @@ bool KURLBar::editItem( KURLBarItem *ite
                                             icon, appLocal,
                                             m_iconSize, this ))
     {
-        item->setURL( url );
+       if( !appLocal)
+               createItemOnMDKMerge( url, description, icon );        
+		item->setURL( url );
         item->setDescription( description );
         item->setIcon( icon );
         item->setApplicationLocal( appLocal );
@@ -811,6 +816,18 @@ bool KURLBar::editItem( KURLBarItem *ite
     return false;
 }
 
+void  KURLBar::createItemOnMDKMerge( const KURL &url, const QString & description, const QString &icon )
+{
+   if ( !QFile::exists( KStandardDirs::mandrake_merge_directory() ) )
+       KStandardDirs::makeDir( QFile::encodeName( KStandardDirs::mandrake_merge_directory() ) );
+    KDesktopFile df(KStandardDirs::mandrake_merge_directory() + description);
+    df.writeEntry( "Name", description );
+    df.writeEntry( "Icon", icon );
+    df.writeEntry( "Type", "Link" );
+    df.writeEntry( "URL", url.url() );
+    df.sync();
+}
+
 ///////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////