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

List:       kde-commits
Subject:    KDE/kdebase/workspace/krunner/interfaces/default
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2010-08-31 21:57:32
Message-ID: 20100831215732.1B7DEAC857 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1170439 by aseigo:

better drag start behaviour


 M  +11 -4     resultitem.cpp  
 M  +2 -1      resultitem.h  


--- trunk/KDE/kdebase/workspace/krunner/interfaces/default/resultitem.cpp \
#1170438:1170439 @@ -39,6 +39,7 @@
 #include <QTimer>
 
 #include <KDebug>
+#include <KGlobalSettings>
 #include <KIcon>
 #include <KIconLoader>
 
@@ -64,7 +65,8 @@
       m_actionsLayout(0),
       m_runnerManager(runnerManager),
       m_sharedData(sharedData),
-      m_mouseHovered(false)
+      m_mouseHovered(false),
+      m_mimeDataFailed(false)
 {
     m_highlightCheckTimer.setInterval(0);
     m_highlightCheckTimer.setSingleShot(true);
@@ -126,6 +128,7 @@
 
 void ResultItem::setMatch(const Plasma::QueryMatch &match)
 {
+    m_mimeDataFailed = false;
     m_match = match;
     m_icon = KIcon(match.icon());
 
@@ -442,16 +445,20 @@
 
 void ResultItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
 {
-    kDebug() << event->button() << Qt::LeftButton;
-
+    if (!m_mimeDataFailed &&
+        event->buttons() == Qt::LeftButton &&
+        (event->pos() - event->buttonDownPos(Qt::LeftButton)).manhattanLength() >= \
KGlobalSettings::dndEventDelay()) {  QMimeData * mime = \
                m_runnerManager->mimeDataForMatch(m_match);
-
+        //kDebug() << mime << m_match.text() << m_match.id() << m_match.data();
     if (mime) {
         QDrag * drag = new QDrag(event->widget());
         drag->setMimeData(mime);
         drag->exec();
     }
+
+        m_mimeDataFailed = !mime;
 }
+}
 
 bool ResultItem::mouseHovered() const
 {
--- trunk/KDE/kdebase/workspace/krunner/interfaces/default/resultitem.h \
#1170438:1170439 @@ -148,7 +148,8 @@
     Plasma::RunnerManager *m_runnerManager;
     QPropertyAnimation *m_highlightAnim;
     const SharedResultData *m_sharedData;
-    bool m_mouseHovered;
+    bool m_mouseHovered : 1;
+    bool m_mimeDataFailed : 1;
 
     static int s_fontHeight;
 };


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

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