summaryrefslogtreecommitdiffstats
path: root/src/layouts
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@digia.com>2013-09-02 10:10:56 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-10 16:22:18 +0200
commitcc061a7c5c14068e6b8dca02955047fd72fba1bc (patch)
treefadaaed8d99c60b09035a8717b55808f2acf57e0 /src/layouts
parent7f4de9b5bbe9209fb237d795d4adf5d8a1d942a3 (diff)
Make sure rowSpan, columnSpan and alignment changes are emitted
...and reacted upon properly. Change-Id: I54f23f0edd41abeb6403eb754a23561b3814a509 Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Diffstat (limited to 'src/layouts')
-rw-r--r--src/layouts/qquicklayout.cpp24
-rw-r--r--src/layouts/qquicklayout_p.h15
2 files changed, 33 insertions, 6 deletions
diff --git a/src/layouts/qquicklayout.cpp b/src/layouts/qquicklayout.cpp
index 98f4b1b77..3050cd760 100644
--- a/src/layouts/qquicklayout.cpp
+++ b/src/layouts/qquicklayout.cpp
@@ -410,6 +410,14 @@ void QQuickLayoutAttached::setColumn(int column)
The default value is \c 0, which means it will be \c{Qt.AlignVCenter | Qt.AlignLeft}
*/
+void QQuickLayoutAttached::setAlignment(Qt::Alignment align)
+{
+ if (align != m_alignment) {
+ m_alignment = align;
+ invalidateItem();
+ emit alignmentChanged();
+ }
+}
/*!
@@ -422,6 +430,14 @@ void QQuickLayoutAttached::setColumn(int column)
\sa columnSpan
\sa row
*/
+void QQuickLayoutAttached::setRowSpan(int span)
+{
+ if (span != m_rowSpan) {
+ m_rowSpan = span;
+ repopulateLayout();
+ emit rowSpanChanged();
+ }
+}
/*!
@@ -434,6 +450,14 @@ void QQuickLayoutAttached::setColumn(int column)
\sa rowSpan
\sa column
*/
+void QQuickLayoutAttached::setColumnSpan(int span)
+{
+ if (span != m_columnSpan) {
+ m_columnSpan = span;
+ repopulateLayout();
+ emit columnSpanChanged();
+ }
+}
qreal QQuickLayoutAttached::sizeHint(Qt::SizeHint which, Qt::Orientation orientation) const
diff --git a/src/layouts/qquicklayout_p.h b/src/layouts/qquicklayout_p.h
index 9339cd8de..b532aa1ff 100644
--- a/src/layouts/qquicklayout_p.h
+++ b/src/layouts/qquicklayout_p.h
@@ -117,9 +117,9 @@ class QQuickLayoutAttached : public QObject
Q_PROPERTY(bool fillWidth READ fillWidth WRITE setFillWidth NOTIFY fillWidthChanged)
Q_PROPERTY(int row READ row WRITE setRow NOTIFY rowChanged)
Q_PROPERTY(int column READ column WRITE setColumn NOTIFY columnChanged)
- Q_PROPERTY(int rowSpan READ rowSpan WRITE setRowSpan)
- Q_PROPERTY(int columnSpan READ columnSpan WRITE setColumnSpan)
- Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
+ Q_PROPERTY(int rowSpan READ rowSpan WRITE setRowSpan NOTIFY rowSpanChanged)
+ Q_PROPERTY(int columnSpan READ columnSpan WRITE setColumnSpan NOTIFY columnSpanChanged)
+ Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged)
public:
QQuickLayoutAttached(QObject *object);
@@ -161,12 +161,12 @@ public:
bool isColumnSet() const { return m_column >= 0; }
int rowSpan() const { return m_rowSpan; }
- void setRowSpan(int span) { m_rowSpan = span; }
+ void setRowSpan(int span);
int columnSpan() const { return m_columnSpan; }
- void setColumnSpan(int span) { m_columnSpan = span; }
+ void setColumnSpan(int span);
Qt::Alignment alignment() const { return m_alignment; }
- void setAlignment (Qt::Alignment align) { m_alignment = align; }
+ void setAlignment(Qt::Alignment align);
bool setChangesNotificationEnabled(bool enabled)
{
@@ -204,6 +204,9 @@ signals:
void fillHeightChanged();
void rowChanged();
void columnChanged();
+ void rowSpanChanged();
+ void columnSpanChanged();
+ void alignmentChanged();
private:
void invalidateItem();