diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-04-12 19:21:35 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-04-12 19:21:35 (GMT) |
commit | 7a45927166ae9d29e7f440b255f3463d5350c220 (patch) | |
tree | 1a4d1e4a0405280af999f59c15ba8e8cc9f87ab0 /src/gui/kernel | |
parent | e9a0067ef4b272f1893522959dc15561970590ea (diff) | |
parent | 8576aa104528f9a2863fd097abc8bac5c956fdb8 (diff) | |
download | Qt-7a45927166ae9d29e7f440b255f3463d5350c220.zip Qt-7a45927166ae9d29e7f440b255f3463d5350c220.tar.gz Qt-7a45927166ae9d29e7f440b255f3463d5350c220.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (44 commits)
QSlider and StyleSheet: fix one pixel error while drawing the SliderAddPage
accelerate QWindowsPipeWriter for bigger chunks of data
Fix antialiasing with transformed text in OpenGL2 paint engine
Fix flattening of largely scaled, thin, dashed beziers.
Increased the precision used to flatten beziers
Fix QT_NO_MOVIE
Fix compile error with QT_NO_ACTION in QtGui
Fix QT_NO_COMPLETER
Fix QT_NO_FSCOMPLETER
Fix QT_NO_FILESYSTEMMODEL
Build fix
Safeguard ourselves against corrupt registry values for cleartype gamma
fix cetest build properly
qdrawhelper: optimize the fetch transformed bilinear functions
Compile fix for WinCE
Make sure the selectionChanged signal is not called too much
Implement heightForWidth support for QTabWidget and QStackedLayout.
Fix the doc for QFrame::frameStyle
Don't use texture-from-pixmap if the target isn't GL_TEXTURE_2D
Add runtime check for GLX >= 1.3 before using glXCreatePixmap
...
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qlayoutitem.cpp | 4 | ||||
-rw-r--r-- | src/gui/kernel/qstackedlayout.cpp | 26 | ||||
-rw-r--r-- | src/gui/kernel/qstackedlayout.h | 2 | ||||
-rw-r--r-- | src/gui/kernel/qwidget.cpp | 17 | ||||
-rw-r--r-- | src/gui/kernel/qwidget.h | 1 | ||||
-rw-r--r-- | src/gui/kernel/qwidget_p.h | 1 |
6 files changed, 48 insertions, 3 deletions
diff --git a/src/gui/kernel/qlayoutitem.cpp b/src/gui/kernel/qlayoutitem.cpp index 6a91d95..e615b2d 100644 --- a/src/gui/kernel/qlayoutitem.cpp +++ b/src/gui/kernel/qlayoutitem.cpp @@ -516,9 +516,7 @@ bool QWidgetItem::hasHeightForWidth() const { if (isEmpty()) return false; - if (wid->layout()) - return wid->layout()->hasHeightForWidth(); - return wid->sizePolicy().hasHeightForWidth(); + return wid->hasHeightForWidth(); } /*! diff --git a/src/gui/kernel/qstackedlayout.cpp b/src/gui/kernel/qstackedlayout.cpp index 7559066..4b49638 100644 --- a/src/gui/kernel/qstackedlayout.cpp +++ b/src/gui/kernel/qstackedlayout.cpp @@ -475,6 +475,32 @@ void QStackedLayout::setGeometry(const QRect &rect) } } +bool QStackedLayout::hasHeightForWidth() const +{ + const int n = count(); + + for (int i = 0; i < n; ++i) { + if (QLayoutItem *item = itemAt(i)) { + if (item->hasHeightForWidth()) + return true; + } + } + return false; +} + +int QStackedLayout::heightForWidth(int width) const +{ + const int n = count(); + + int hfw = 0; + for (int i = 0; i < n; ++i) { + if (QLayoutItem *item = itemAt(i)) { + hfw = qMax(hfw, item->heightForWidth(width)); + } + } + return hfw; +} + /*! \enum QStackedLayout::StackingMode \since 4.4 diff --git a/src/gui/kernel/qstackedlayout.h b/src/gui/kernel/qstackedlayout.h index c069149..842b62b 100644 --- a/src/gui/kernel/qstackedlayout.h +++ b/src/gui/kernel/qstackedlayout.h @@ -95,6 +95,8 @@ public: QLayoutItem *itemAt(int) const; QLayoutItem *takeAt(int); void setGeometry(const QRect &rect); + bool hasHeightForWidth() const; + int heightForWidth(int width) const; Q_SIGNALS: void widgetRemoved(int index); diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 72ffe87..2150b56 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -3820,6 +3820,11 @@ void QWidget::setMaximumSize(int maxw, int maxh) d->updateGeometry_helper(d->extra->minw == d->extra->maxw && d->extra->minh == d->extra->maxh); } +bool QWidgetPrivate::hasHeightForWidth() const +{ + return layout ? layout->hasHeightForWidth() : size_policy.hasHeightForWidth(); +} + /*! \overload @@ -7965,6 +7970,18 @@ QSize QWidget::minimumSizeHint() const return QSize(-1, -1); } +/*! + \internal + This is a bit hackish, but ideally this would have been a virtual + function so that subclasses could reimplement their own function. + Instead we add a virtual function to QWidgetPrivate. +*/ +bool QWidget::hasHeightForWidth() const +{ + Q_D(const QWidget); + return d->hasHeightForWidth(); +} + /*! \fn QWidget *QWidget::parentWidget() const diff --git a/src/gui/kernel/qwidget.h b/src/gui/kernel/qwidget.h index e12148b..6e5de7d 100644 --- a/src/gui/kernel/qwidget.h +++ b/src/gui/kernel/qwidget.h @@ -524,6 +524,7 @@ public: virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; + bool hasHeightForWidth() const; QSizePolicy sizePolicy() const; void setSizePolicy(QSizePolicy); diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index 89ea256..05a859c 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -493,6 +493,7 @@ public: bool setMinimumSize_helper(int &minw, int &minh); bool setMaximumSize_helper(int &maxw, int &maxh); + virtual bool hasHeightForWidth() const; void setConstraints_sys(); QWidget *childAt_helper(const QPoint &, bool) const; void updateGeometry_helper(bool forceUpdate); |