Add support for StackedWidget
authorTobias Koenig <tobias.koenig@kdab.com>
Wed, 31 Oct 2012 09:27:46 +0000 (10:27 +0100)
committerTobias Koenig <tobias.koenig@kdab.com>
Wed, 31 Oct 2012 09:27:46 +0000 (10:27 +0100)
declarativeobjects.cpp
declarativeobjects_p.h
declarativewidgetdocument.cpp
gallery.qml
qwidgets.list

index 93aa087..7ff433e 100644 (file)
@@ -1578,6 +1578,25 @@ DeclarativeSpinBox::DeclarativeSpinBox(QObject *parent) : DeclarativeWidgetProxy
 
 CUSTOM_METAOBJECT(DeclarativeSpinBox, QSpinBox)
 
+// DeclarativeStackedWidget
+DeclarativeStackedWidget::DeclarativeStackedWidget(QObject *parent) : DeclarativeWidgetProxy<QStackedWidget>(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
 {
index cc19802..c19b2d5 100644 (file)
@@ -32,6 +32,7 @@
 #include <QtGui/QScrollBar>
 #include <QtGui/QSlider>
 #include <QtGui/QSpinBox>
+#include <QtGui/QStackedWidget>
 #include <QtGui/QStatusBar>
 #include <QtGui/QTabWidget>
 #include <QtGui/QTextBrowser>
@@ -930,6 +931,18 @@ class DeclarativeSpinBox : public DeclarativeWidgetProxy<QSpinBox>
     DeclarativeSpinBox(QObject *parent = 0);
 };
 
+class DeclarativeStackedWidget : public DeclarativeWidgetProxy<QStackedWidget>
+{
+  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
 {
index 7c9473e..f0b1c17 100644 (file)
@@ -80,6 +80,7 @@ DeclarativeWidgetDocument::DeclarativeWidgetDocument(const QUrl &url, QObject *p
   qmlRegisterType<DeclarativeScrollBar>("QtGui", 1, 0, "ScrollBar");
   qmlRegisterType<DeclarativeSlider>("QtGui", 1, 0, "Slider");
   qmlRegisterType<DeclarativeSpinBox>("QtGui", 1, 0, "SpinBox");
+  qmlRegisterType<DeclarativeStackedWidget>("QtGui", 1, 0, "StackedWidget");
   qmlRegisterType<DeclarativeStatusBarAttached>();
   qmlRegisterType<DeclarativeStatusBar>("QtGui", 1, 0, "StatusBar");
   qmlRegisterType<DeclarativeTabWidgetAttached>();
index d41653a..955453a 100644 (file)
@@ -54,6 +54,14 @@ TabWidget {
         minimumWidth: 100
         minimumHeight: 100
       }
+      StackedWidget {
+        Label {
+          text: "Page 1"
+        }
+        Label {
+          text: "Page 2"
+        }
+      }
     }
   }
 
index 795240b..63851c3 100644 (file)
@@ -21,7 +21,6 @@ qprintpreviewwidget.h
 qscrollarea.h
 qsplashscreen.h
 qsplitter.h
-qstackedwidget.h
 qtabbar.h
 qtableview.h
 qtablewidget.h