summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview/qgraphicslayout_p.h
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-10-29 04:54:35 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-10-29 04:54:35 (GMT)
commitc06be171d9e9efe91a3612bf0a82fab0d2cff2fa (patch)
tree8c3194e5171125f281f4df53328826138e723719 /src/gui/graphicsview/qgraphicslayout_p.h
parentbfbded95056d43a65b2c9ef1fa90bfd40adc6472 (diff)
parent51f1d68addd23516d7e6e252e476feac0a95d0c0 (diff)
downloadQt-c06be171d9e9efe91a3612bf0a82fab0d2cff2fa.zip
Qt-c06be171d9e9efe91a3612bf0a82fab0d2cff2fa.tar.gz
Qt-c06be171d9e9efe91a3612bf0a82fab0d2cff2fa.tar.bz2
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-widget-team into kinetic-declarativeui
Diffstat (limited to 'src/gui/graphicsview/qgraphicslayout_p.h')
-rw-r--r--src/gui/graphicsview/qgraphicslayout_p.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/gui/graphicsview/qgraphicslayout_p.h b/src/gui/graphicsview/qgraphicslayout_p.h
index 59c6dba..4aeae39 100644
--- a/src/gui/graphicsview/qgraphicslayout_p.h
+++ b/src/gui/graphicsview/qgraphicslayout_p.h
@@ -60,6 +60,8 @@
#include "qgraphicslayout.h"
#include "qgraphicslayoutitem_p.h"
#include <QtGui/qstyle.h>
+#include <QtGui/qwidget.h>
+#include <QtGui/qstyleoption.h>
QT_BEGIN_NAMESPACE
@@ -76,6 +78,55 @@ inline bool qt_graphicsLayoutDebug()
}
#endif
+
+class QLayoutStyleInfo
+{
+public:
+ inline QLayoutStyleInfo() { invalidate(); }
+ inline QLayoutStyleInfo(QStyle *style, QWidget *widget)
+ : m_valid(true), m_style(style), m_widget(widget)
+ {
+ Q_ASSERT(style);
+ if (widget) //###
+ m_styleOption.initFrom(widget);
+ m_defaultSpacing[0] = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing);
+ m_defaultSpacing[1] = style->pixelMetric(QStyle::PM_LayoutVerticalSpacing);
+ }
+
+ inline void invalidate() { m_valid = false; m_style = 0; m_widget = 0; }
+
+ inline QStyle *style() const { return m_style; }
+ inline QWidget *widget() const { return m_widget; }
+
+ inline bool operator==(const QLayoutStyleInfo &other)
+ { return m_style == other.m_style && m_widget == other.m_widget; }
+ inline bool operator!=(const QLayoutStyleInfo &other)
+ { return !(*this == other); }
+
+ inline void setDefaultSpacing(Qt::Orientation o, qreal spacing){
+ if (spacing >= 0)
+ m_defaultSpacing[o - 1] = spacing;
+ }
+
+ inline qreal defaultSpacing(Qt::Orientation o) const {
+ return m_defaultSpacing[o - 1];
+ }
+
+ inline qreal perItemSpacing(QSizePolicy::ControlType control1,
+ QSizePolicy::ControlType control2,
+ Qt::Orientation orientation) const
+ {
+ Q_ASSERT(style());
+ return style()->layoutSpacing(control1, control2, orientation, &m_styleOption, widget());
+ }
+private:
+ bool m_valid;
+ QStyle *m_style;
+ QWidget *m_widget;
+ QStyleOption m_styleOption;
+ qreal m_defaultSpacing[2];
+};
+
class Q_AUTOTEST_EXPORT QGraphicsLayoutPrivate : public QGraphicsLayoutItemPrivate
{
Q_DECLARE_PUBLIC(QGraphicsLayout)