summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/widgets/graphicsview/qgraphicsview.cpp20
-rw-r--r--src/widgets/graphicsview/qgraphicsview_p.h1
-rw-r--r--src/widgets/widgets/qabstractscrollarea.cpp21
-rw-r--r--src/widgets/widgets/qabstractscrollarea_p.h3
4 files changed, 25 insertions, 20 deletions
diff --git a/src/widgets/graphicsview/qgraphicsview.cpp b/src/widgets/graphicsview/qgraphicsview.cpp
index 338d5531082..37141c41667 100644
--- a/src/widgets/graphicsview/qgraphicsview.cpp
+++ b/src/widgets/graphicsview/qgraphicsview.cpp
@@ -615,6 +615,26 @@ void QGraphicsViewPrivate::updateScroll()
/*!
\internal
+
+ * don't start scrolling when a drag mode has been set
+ * don't start scrolling on a movable item
+*/
+bool QGraphicsViewPrivate::canStartScrollingAt(const QPoint &startPos) const
+{
+ Q_Q(const QGraphicsView);
+ if (q->dragMode() != QGraphicsView::NoDrag)
+ return false;
+
+ const QGraphicsItem *childItem = q->itemAt(startPos);
+
+ if (childItem && (childItem->flags() & QGraphicsItem::ItemIsMovable))
+ return false;
+
+ return QAbstractScrollAreaPrivate::canStartScrollingAt(startPos);
+}
+
+/*!
+ \internal
*/
void QGraphicsViewPrivate::replayLastMouseEvent()
{
diff --git a/src/widgets/graphicsview/qgraphicsview_p.h b/src/widgets/graphicsview/qgraphicsview_p.h
index e877e6e8873..b58505b057b 100644
--- a/src/widgets/graphicsview/qgraphicsview_p.h
+++ b/src/widgets/graphicsview/qgraphicsview_p.h
@@ -117,6 +117,7 @@ public:
QTransform matrix;
qint64 scrollX, scrollY;
void updateScroll();
+ bool canStartScrollingAt(const QPoint &startPos) const override;
qreal leftIndent;
qreal topIndent;
diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp
index 257cffda62c..3550df60d74 100644
--- a/src/widgets/widgets/qabstractscrollarea.cpp
+++ b/src/widgets/widgets/qabstractscrollarea.cpp
@@ -1361,28 +1361,13 @@ void QAbstractScrollArea::scrollContentsBy(int, int)
viewport()->update();
}
-bool QAbstractScrollAreaPrivate::canStartScrollingAt( const QPoint &startPos )
+bool QAbstractScrollAreaPrivate::canStartScrollingAt(const QPoint &startPos) const
{
- Q_Q(QAbstractScrollArea);
-
-#if QT_CONFIG(graphicsview)
- // don't start scrolling when a drag mode has been set.
- // don't start scrolling on a movable item.
- if (QGraphicsView *view = qobject_cast<QGraphicsView *>(q)) {
- if (view->dragMode() != QGraphicsView::NoDrag)
- return false;
-
- QGraphicsItem *childItem = view->itemAt(startPos);
-
- if (childItem && (childItem->flags() & QGraphicsItem::ItemIsMovable))
- return false;
- }
-#endif
+ Q_Q(const QAbstractScrollArea);
// don't start scrolling on a QAbstractSlider
- if (qobject_cast<QAbstractSlider *>(q->viewport()->childAt(startPos))) {
+ if (qobject_cast<QAbstractSlider *>(q->viewport()->childAt(startPos)))
return false;
- }
return true;
}
diff --git a/src/widgets/widgets/qabstractscrollarea_p.h b/src/widgets/widgets/qabstractscrollarea_p.h
index 6d78b9db6de..5cba21c97c0 100644
--- a/src/widgets/widgets/qabstractscrollarea_p.h
+++ b/src/widgets/widgets/qabstractscrollarea_p.h
@@ -94,9 +94,8 @@ public:
void init();
void layoutChildren();
void layoutChildren_helper(bool *needHorizontalScrollbar, bool *needVerticalScrollbar);
- // ### Fix for 4.4, talk to Bjoern E or Girish.
virtual void scrollBarPolicyChanged(Qt::Orientation, Qt::ScrollBarPolicy) {}
- bool canStartScrollingAt( const QPoint &startPos );
+ virtual bool canStartScrollingAt( const QPoint &startPos ) const;
void flashScrollBars();
void setScrollBarTransient(QScrollBar *scrollBar, bool transient);