From: Tobias Koenig Date: Wed, 31 Oct 2012 09:27:46 +0000 (+0100) Subject: Add support for StackedWidget X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=49828c04e106ee16c47e90bb37ac947d558238c9;p=konrad%2FDeclarativeWidgets.git Add support for StackedWidget --- diff --git a/declarativeobjects.cpp b/declarativeobjects.cpp index 93aa087..7ff433e 100644 --- a/declarativeobjects.cpp +++ b/declarativeobjects.cpp @@ -1578,6 +1578,25 @@ DeclarativeSpinBox::DeclarativeSpinBox(QObject *parent) : DeclarativeWidgetProxy CUSTOM_METAOBJECT(DeclarativeSpinBox, QSpinBox) +// DeclarativeStackedWidget +DeclarativeStackedWidget::DeclarativeStackedWidget(QObject *parent) : DeclarativeWidgetProxy(parent) +{ + connectAllSignals(m_proxiedObject, this); +} + +void DeclarativeStackedWidget::addWidget(QWidget *widget, AbstractDeclarativeObject *declarativeObject) +{ + m_proxiedObject->addWidget(widget); + m_children.append(declarativeObject); +} + +void DeclarativeStackedWidget::setLayout(QLayout*, AbstractDeclarativeObject *declarativeObject) +{ + qmlInfo(declarativeObject) << "StackedWidget does not support child layouts"; +} + +CUSTOM_METAOBJECT(DeclarativeStackedWidget, QStackedWidget) + // DeclarativeStatusBar class DeclarativeStatusBarAttached::Private { diff --git a/declarativeobjects_p.h b/declarativeobjects_p.h index cc19802..c19b2d5 100644 --- a/declarativeobjects_p.h +++ b/declarativeobjects_p.h @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -930,6 +931,18 @@ class DeclarativeSpinBox : public DeclarativeWidgetProxy DeclarativeSpinBox(QObject *parent = 0); }; +class DeclarativeStackedWidget : public DeclarativeWidgetProxy +{ + DECLARATIVE_OBJECT + + public: + DeclarativeStackedWidget(QObject *parent = 0); + + protected: + virtual void addWidget(QWidget *widget, AbstractDeclarativeObject *declarativeObject); + virtual void setLayout(QLayout *layout, AbstractDeclarativeObject *declarativeObject); +}; + // attached property for DeclarativeStatusBar class DeclarativeStatusBarAttached : public QObject { diff --git a/declarativewidgetdocument.cpp b/declarativewidgetdocument.cpp index 7c9473e..f0b1c17 100644 --- a/declarativewidgetdocument.cpp +++ b/declarativewidgetdocument.cpp @@ -80,6 +80,7 @@ DeclarativeWidgetDocument::DeclarativeWidgetDocument(const QUrl &url, QObject *p qmlRegisterType("QtGui", 1, 0, "ScrollBar"); qmlRegisterType("QtGui", 1, 0, "Slider"); qmlRegisterType("QtGui", 1, 0, "SpinBox"); + qmlRegisterType("QtGui", 1, 0, "StackedWidget"); qmlRegisterType(); qmlRegisterType("QtGui", 1, 0, "StatusBar"); qmlRegisterType(); diff --git a/gallery.qml b/gallery.qml index d41653a..955453a 100644 --- a/gallery.qml +++ b/gallery.qml @@ -54,6 +54,14 @@ TabWidget { minimumWidth: 100 minimumHeight: 100 } + StackedWidget { + Label { + text: "Page 1" + } + Label { + text: "Page 2" + } + } } } diff --git a/qwidgets.list b/qwidgets.list index 795240b..63851c3 100644 --- a/qwidgets.list +++ b/qwidgets.list @@ -21,7 +21,6 @@ qprintpreviewwidget.h qscrollarea.h qsplashscreen.h qsplitter.h -qstackedwidget.h qtabbar.h qtableview.h qtablewidget.h