Summary: | Drag in view object manager has problems | ||
---|---|---|---|
Product: | [Applications] kst | Reporter: | Netterfield <netterfield> |
Component: | general | Assignee: | kst |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 1.x | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Netterfield
2006-05-09 21:07:36 UTC
I) by view object dialog do you mean view manager? If so this is a bug with the QListView that does not set the appropriate cursor even when it is told that the drop should not be allowed. II) ditto III) agreed OK, then, for (I) and (II), when you dump on top of a descendent of an object which could accept the curve, then add it to the ancestor which could accept it. (ie, if you dump a curve or a label on a curve, add it to the plot curve's parent plot). SVN commit 539226 by arwalker: CCBUG:127042 Fix I and II by applying a hack to work around the bug in QListView M +7 -1 kstviewmanager_i.cpp M +4 -4 kstviewmanager_i.h --- trunk/extragear/graphics/kst/src/libkstapp/kstviewmanager_i.cpp #539225:539226 @@ -172,6 +172,12 @@ } } + if (retVal) { + _vm->ViewView->viewport()->setCursor(Qt::ArrowCursor); + } else { + _vm->ViewView->viewport()->setCursor(Qt::ForbiddenCursor); + } + return retVal; } @@ -375,7 +381,7 @@ ViewView->setAllColumnsShowFocus(TRUE); ViewView->setShowSortIndicator(TRUE); ViewView->setRootIsDecorated(TRUE); - ViewView->setAcceptDrops(TRUE); + ViewView->setAcceptDrops(FALSE); ViewView->viewport()->setAcceptDrops(TRUE); ViewView->setSelectionMode(QListView::Single); KstViewManagerLayout->addMultiCellWidget(ViewView, 0, 0, 0, 3); --- trunk/extragear/graphics/kst/src/libkstapp/kstviewmanager_i.h #539225:539226 @@ -41,8 +41,8 @@ KstViewObjectItem(QListViewItem *parent, KstBaseCurvePtr x, KstViewManagerI *dm, int localUseCount = 0); virtual ~KstViewObjectItem(); - bool acceptDrop(const QMimeSource *mime) const; - void dropped(QDropEvent *e); + virtual bool acceptDrop(const QMimeSource *mime) const; + virtual void dropped(QDropEvent *e); virtual int rtti() const { return _rtti; } void update(KstViewObjectPtr x, bool recursive = true, int localUseCount = 0); @@ -82,8 +82,8 @@ void open(); void close(); void openAll(); - void closeAll(); - + void closeAll(); + private slots: void doUpdates(); void contextMenu(QListViewItem *i, const QPoint& p, int c); SVN commit 539229 by arwalker: CCBUG:127042 Still not perfect but better than before M +9 -1 kstviewmanager_i.cpp M +1 -0 kstviewmanager_i.h --- trunk/extragear/graphics/kst/src/libkstapp/kstviewmanager_i.cpp #539228:539229 @@ -100,6 +100,12 @@ return drag; } +void KstViewListView::contentsMouseMoveEvent(QMouseEvent *e) { + viewport()->setCursor(Qt::ArrowCursor); + + QListView::contentsMouseMoveEvent(e); +} + // ============================================== KstViewObjectItem::KstViewObjectItem(QListView *parent, KstTopLevelViewPtr x, KstViewManagerI *vm, int localUseCount) @@ -147,7 +153,6 @@ KstViewObjectItem::~KstViewObjectItem() { } - bool KstViewObjectItem::acceptDrop(const QMimeSource *mime) const { bool retVal = false; @@ -172,6 +177,9 @@ } } + // + // the following should not be necessary but is due to a bug in QListView... + // if (retVal) { _vm->ViewView->viewport()->setCursor(Qt::ArrowCursor); } else { --- trunk/extragear/graphics/kst/src/libkstapp/kstviewmanager_i.h #539228:539229 @@ -32,6 +32,7 @@ protected: virtual QDragObject* dragObject(); + virtual void contentsMouseMoveEvent(QMouseEvent *e); }; class KstViewObjectItem : public QListViewItem { SVN commit 539545 by arwalker: BUG:127042 Allow the user to drag and drop view object to any other view object from the view manager M +1 -51 kst.cpp M +0 -2 kst.h M +5 -2 kst2dplot.cpp M +1 -1 kst2dplot.h M +5 -2 kstplotgroup.cpp M +1 -1 kstplotgroup.h M +10 -2 kstviewarrow.cpp M +3 -1 kstviewarrow.h M +5 -2 kstviewbox.cpp M +1 -1 kstviewbox.h M +5 -2 kstviewellipse.cpp M +1 -1 kstviewellipse.h M +5 -2 kstviewlabel.cpp M +1 -1 kstviewlabel.h M +5 -2 kstviewlegend.cpp M +1 -1 kstviewlegend.h M +5 -2 kstviewline.cpp M +1 -1 kstviewline.h M +29 -14 kstviewmanager_i.cpp M +65 -1 kstviewobject.cpp M +5 -2 kstviewobject.h M +5 -2 kstviewpicture.cpp M +1 -1 kstviewpicture.h M +14 -4 kstviewwidget.cpp |