[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/lib/kopainter
From: Rob Buis <rwlbuis () xs4all ! nl>
Date: 2003-06-01 20:10:31
[Download RAW message or body]
CVS commit by buis:
Support for starting a drag from KoIconChooser.
Default behaviour is no drag.
M +26 -0 koIconChooser.cc 1.7
M +8 -0 koIconChooser.h 1.6
--- koffice/lib/kopainter/koIconChooser.cc #1.6:1.7
@@ -24,4 +24,5 @@
#include <qpainter.h>
#include <qcursor.h>
+#include <qapplication.h>
#include <qhbox.h>
#include <qlayout.h>
@@ -75,4 +76,6 @@ QGridView(parent, name)
mItemWidth = aIconSize.width();
mItemHeight = aIconSize.height();
+ mMouseButtonDown = false;
+ mDragEnabled = false;
}
@@ -143,7 +146,9 @@ void KoIconChooser::mousePressEvent(QMou
{
QGridView::mousePressEvent(e);
+ mMouseButtonDown = true;
if(e->button() == LeftButton)
{
QPoint p = e->pos();
+ mDragStartPos = p;
int row = rowAt(contentsY() + p.y());
int col = columnAt(contentsX() + p.x());
@@ -170,7 +175,28 @@ void KoIconChooser::mousePressEvent(QMou
}
+void KoIconChooser::mouseMoveEvent(QMouseEvent *e)
+{
+ if(mMouseButtonDown && mDragEnabled )
+ {
+ if(mPixmapWidget)
+ {
+ delete mPixmapWidget;
+ mPixmapWidget = 0L;
+ }
+ if( ( mDragStartPos - e->pos() ).manhattanLength() > QApplication::startDragDistance() )
+ startDrag();
+ }
+}
+
+void
+KoIconChooser::startDrag()
+{
+ mMouseButtonDown = false;
+}
+
// when a big item is shown in full size, delete it on mouseRelease
void KoIconChooser::mouseReleaseEvent(QMouseEvent * /*e*/)
{
+ mMouseButtonDown = false;
if(mPixmapWidget)
{
--- koffice/lib/kopainter/koIconChooser.h #1.5:1.6
@@ -73,4 +73,7 @@ public:
void setCurrentItem(KoIconItem *item);
+ void setDragEnabled(bool allow) { mDragEnabled = allow; }
+ bool dragEnabled() const { return mDragEnabled; }
+
signals:
void selected(KoIconItem *item);
@@ -80,6 +83,8 @@ protected:
void mousePressEvent( QMouseEvent *e);
void mouseReleaseEvent( QMouseEvent *e);
+ void mouseMoveEvent( QMouseEvent *e);
void resizeEvent(QResizeEvent *e);
void paintCell(QPainter *p, int row, int col);
+ virtual void startDrag();
private:
@@ -100,4 +105,7 @@ private:
int mCurCol;
int mMargin;
+ QPoint mDragStartPos;
+ bool mMouseButtonDown;
+ bool mDragEnabled;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic