[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdebase/libkonq
From:       David Faure <faure () kde ! org>
Date:       2005-03-28 20:08:02
Message-ID: 20050328200802.E9A59631 () office ! kde ! org
[Download RAW message or body]

CVS commit by faure: 

Let the user choose which format to use when dropping or pasting data.
If this doesn't compile: update kdelibs/kio!

Note that this reverts the hack for #38688 (crash when dragging the *text* of
an icon, after starting a rename operation), which is in fact a Qt bug,
which I reported (together with a patch). 


  M +9 -9      konq_iconviewwidget.cc   1.314
  M +9 -45     konq_operations.cc   1.162
  M +4 -5      konq_operations.h   1.38


--- kdebase/libkonq/konq_iconviewwidget.cc  #1.313:1.314
@@ -1232,5 +1232,5 @@ void KonqIconViewWidget::contentsDropEve
   {
     KIconView::contentsDropEvent( ev );
-    emit dropped(); // What is this for ? (David)
+    emit dropped(); // What is this for ? (David)      KDE4: remove
   }
   // Don't do this here, it's too early !

--- kdebase/libkonq/konq_operations.cc  #1.161:1.162
@@ -137,5 +137,4 @@ void KonqOperations::doPaste( QWidget * 
         KIO::CopyJob * copyJob = static_cast<KIO::CopyJob *>(job);
         KIOPasteInfo * pi = new KIOPasteInfo;
-        pi->destURL = destURL;
         pi->mousePos = pos;
         op->setPasteInfo( pi );
@@ -382,50 +381,15 @@ void KonqOperations::doDrop( const KFile
     else
     {
-        QStrList formats;
-
-        for ( int i = 0; ev->format( i ); i++ )
-            if ( *( ev->format( i ) ) )
-                formats.append( ev->format( i ) );
-        if ( formats.count() >= 1 )
-        {
             //kdDebug(1203) << "Pasting to " << dest.url() << endl;
-
-            QByteArray data;
-
-            QString text;
-            if ( QTextDrag::canDecode( ev ) && QTextDrag::decode( ev, text ) )
-            {
-                QTextStream txtStream( data, IO_WriteOnly );
-                txtStream << text;
-            }
-            else
-                data = ev->data( formats.first() );
-
-            // Delay the call to KIO::pasteData so that the event filters can \
return. See #38688.  KonqOperations * op = new KonqOperations(parent);
-            KIOPasteInfo * pi = new KIOPasteInfo;
-            pi->data = data;
-            pi->destURL = dest;
-            pi->mousePos = ev->pos();
-            pi->dialogText = i18n( "File name for dropped contents:" );
-            op->setPasteInfo( pi );
-            QTimer::singleShot( 0, op, SLOT( slotKIOPaste() ) );
-        }
-        ev->acceptAction();
-    }
-}
-
-void KonqOperations::slotKIOPaste()
-{
-    assert(m_pasteInfo); // setPasteInfo should have been called before
-    KIO::CopyJob *job = KIO::pasteDataAsync( m_pasteInfo->destURL, \
                m_pasteInfo->data, m_pasteInfo->dialogText );
-    if ( job )
+        KIO::CopyJob* job = KIO::pasteMimeSource( ev, dest,
+                                                  i18n( "File name for dropped \
contents:" ), +                                                  parent );
+        if ( job ) // 0 if canceled by user
     {
-        setOperation( job, COPY, KURL::List(), job->destURL() );
-        (void) new KonqCommandRecorder( KonqCommand::COPY, KURL::List(), m_destURL, \
job ); +            op->setOperation( job, COPY, KURL::List(), job->destURL() );
+            (void) new KonqCommandRecorder( KonqCommand::COPY, KURL::List(), dest, \
job );  }
-    else
-    {
-        delete this;
+        ev->acceptAction();
     }
 }

--- kdebase/libkonq/konq_operations.h  #1.37:1.38
@@ -144,10 +144,10 @@ protected:
     void setDropInfo( DropInfo * info ) { m_info = info; }
 
-    struct KIOPasteInfo
+    struct KIOPasteInfo // KDE4: remove and use DropInfo instead or a QPoint member
     {
-        QByteArray data;
-        KURL destURL;
+        QByteArray data;  // unused
+        KURL destURL;     // unused
         QPoint mousePos;
-        QString dialogText;
+        QString dialogText; // unused
     };
     void setPasteInfo( KIOPasteInfo * info ) { m_pasteInfo = info; }
@@ -159,5 +159,4 @@ protected slots:
     void slotStatResult( KIO::Job * job );
     void asyncDrop( const KFileItem * item );
-    void slotKIOPaste();
     void doFileCopy();
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic