diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2014-12-03 12:58:14 +0100 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2014-12-03 18:03:09 +0100 |
commit | d41834b953beb1a578cc1be8702dab9ac4a4c954 (patch) | |
tree | 15a97f13a223c614629abe6dd3ceb565163e16f1 | |
parent | 5180f32c5abe01acd65cde68c2c16aedda4028ec (diff) |
QAbstractScrollArea: add a getter for the margins
Strange API asymmetry that needed to be fixed.
Task-number: QTBUG-8315
[ChangeLog][QtWidgets][QAbstractScrollArea] A getter for the viewport
margins has been added.
Change-Id: Ie1460b572206922031fc4effc2aa8261e25088b5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-rw-r--r-- | src/widgets/widgets/qabstractscrollarea.cpp | 17 | ||||
-rw-r--r-- | src/widgets/widgets/qabstractscrollarea.h | 1 | ||||
-rw-r--r-- | tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp | 19 |
3 files changed, 35 insertions, 2 deletions
diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp index 4cafeafcec..bcf0bbe1fc 100644 --- a/src/widgets/widgets/qabstractscrollarea.cpp +++ b/src/widgets/widgets/qabstractscrollarea.cpp @@ -923,7 +923,7 @@ QWidgetList QAbstractScrollArea::scrollBarWidgets(Qt::Alignment alignment) they should not call this function. By default all margins are zero. - + \sa viewportMargins() */ void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int bottom) { @@ -943,7 +943,7 @@ void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int b area. By default all margins are zero. - + \sa viewportMargins() */ void QAbstractScrollArea::setViewportMargins(const QMargins &margins) { @@ -951,6 +951,19 @@ void QAbstractScrollArea::setViewportMargins(const QMargins &margins) margins.right(), margins.bottom()); } +/*! + \since 5.5 + Returns the margins around the scrolling area. + By default all the margins are zero. + + \sa setViewportMargins() +*/ +QMargins QAbstractScrollArea::viewportMargins() const +{ + Q_D(const QAbstractScrollArea); + return QMargins(d->left, d->top, d->right, d->bottom); +} + /*! \internal */ bool QAbstractScrollArea::eventFilter(QObject *o, QEvent *e) { diff --git a/src/widgets/widgets/qabstractscrollarea.h b/src/widgets/widgets/qabstractscrollarea.h index bd15ba8a52..6a9a86b07f 100644 --- a/src/widgets/widgets/qabstractscrollarea.h +++ b/src/widgets/widgets/qabstractscrollarea.h @@ -97,6 +97,7 @@ protected: QAbstractScrollArea(QAbstractScrollAreaPrivate &dd, QWidget *parent = 0); void setViewportMargins(int left, int top, int right, int bottom); void setViewportMargins(const QMargins &margins); + QMargins viewportMargins() const; bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE; bool event(QEvent *) Q_DECL_OVERRIDE; diff --git a/tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp b/tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp index b18801220c..83e6b94db9 100644 --- a/tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp +++ b/tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp @@ -60,6 +60,8 @@ private slots: void viewportCrash(); void task214488_layoutDirection_data(); void task214488_layoutDirection(); + + void margins(); }; tst_QAbstractScrollArea::tst_QAbstractScrollArea() @@ -375,5 +377,22 @@ void tst_QAbstractScrollArea::patternBackground() QCOMPARE(image.pixel(QPoint(20,20)) , QColor(Qt::red).rgb()); } +class ScrollArea : public QAbstractScrollArea +{ +public: + using QAbstractScrollArea::setViewportMargins; + using QAbstractScrollArea::viewportMargins; +}; + +void tst_QAbstractScrollArea::margins() +{ + ScrollArea area; + QCOMPARE(area.viewportMargins(), QMargins()); + + QMargins margins(10, 20, 30, 40); + area.setViewportMargins(margins); + QCOMPARE(area.viewportMargins(), margins); +} + QTEST_MAIN(tst_QAbstractScrollArea) #include "tst_qabstractscrollarea.moc" |