[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/graphics/digikam/libs/thumbbar
From: Gilles Caulier <caulier.gilles () gmail ! com>
Date: 2007-05-07 11:58:05
Message-ID: 1178539085.091371.31306.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 662058 by cgilles:
digikam from trunk: prepare to support drag & drop with Light Table
M +35 -3 thumbbar.cpp
M +6 -3 thumbbar.h
--- trunk/extragear/graphics/digikam/libs/thumbbar/thumbbar.cpp #662057:662058
@@ -80,6 +80,7 @@
ThumbBarViewPriv() :
margin(5)
{
+ dragging = false;
exifRotate = false;
toolTip = 0;
firstItem = 0;
@@ -94,6 +95,7 @@
bool clearing;
bool exifRotate;
+ bool dragging;
const int margin;
int count;
@@ -102,6 +104,8 @@
QTimer *timer;
+ QPoint dragStartPos;
+
ThumbBarItem *firstItem;
ThumbBarItem *lastItem;
ThumbBarItem *currItem;
@@ -160,7 +164,9 @@
viewport()->setBackgroundMode(Qt::NoBackground);
viewport()->setMouseTracking(true);
setFrameStyle(QFrame::NoFrame);
-
+ setAcceptDrops(true);
+ viewport()->setAcceptDrops(true);
+
if (d->orientation == Vertical)
{
setHScrollBarMode(QScrollView::AlwaysOff);
@@ -560,13 +566,39 @@
item->repaint();
}
- d->currItem = barItem;
+ d->dragging = true;
+ d->dragStartPos = e->pos();
+ d->currItem = barItem;
barItem->repaint();
-
+
emit signalURLSelected(barItem->url());
emit signalItemSelected(barItem);
}
+void ThumbBarView::contentsMouseMoveEvent(QMouseEvent *e)
+{
+ if (!e) return;
+
+ if (d->dragging && (e->state() & Qt::LeftButton))
+ {
+ if ( (d->dragStartPos - e->pos()).manhattanLength()
+ > QApplication::startDragDistance() )
+ {
+ startDrag();
+ }
+ return;
+ }
+}
+
+void ThumbBarView::contentsMouseReleaseEvent(QMouseEvent*)
+{
+ d->dragging = false;
+}
+
+void ThumbBarView::startDrag()
+{
+}
+
void ThumbBarView::insertItem(ThumbBarItem* item)
{
if (!item) return;
--- trunk/extragear/graphics/digikam/libs/thumbbar/thumbbar.h #662057:662058
@@ -136,10 +136,13 @@
int getTileSize();
int getMargin();
- void resizeEvent(QResizeEvent* e);
- void contentsMousePressEvent(QMouseEvent* e);
+ void resizeEvent(QResizeEvent*);
+ void contentsMousePressEvent(QMouseEvent*);
+ void contentsMouseMoveEvent(QMouseEvent*);
+ void contentsMouseReleaseEvent(QMouseEvent*);
- virtual void viewportPaintEvent(QPaintEvent* e);
+ virtual void viewportPaintEvent(QPaintEvent*);
+ virtual void startDrag();
private:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic