51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#include "declarativescrollarea_p.h"
+#include "declarativescrollareaextension_p.h"
-DeclarativeScrollArea::DeclarativeScrollArea(QObject *parent)
- : DeclarativeWidgetProxy<QScrollArea>(parent)
+#include <QDeclarativeInfo>
+#include <QScrollArea>
+
+DeclarativeScrollAreaExtension::DeclarativeScrollAreaExtension(QObject *parent)
+ : DeclarativeWidgetExtension(parent)
+{
+}
+
+QScrollArea *DeclarativeScrollAreaExtension::extendedScrollArea() const
{
- connectAllSignals(m_proxiedObject, this);
+ QScrollArea *scrollArea = qobject_cast<QScrollArea*>(extendedWidget());
+ Q_ASSERT(scrollArea);
+
+ return scrollArea;
}
-void DeclarativeScrollArea::addWidget(QWidget *widget, AbstractDeclarativeObject *declarativeObject)
+void DeclarativeScrollAreaExtension::addWidget(QWidget *widget)
{
- if (m_proxiedObject->widget()) {
- qmlInfo(declarativeObject) << "Can not add multiple Widgets to ScrollArea";
+ QScrollArea *scrollArea = extendedScrollArea();
+
+ if (scrollArea->widget()) {
+ qmlInfo(scrollArea) << "Can not add multiple Widgets to ScrollArea";
} else {
- m_proxiedObject->setWidget(widget);
+ scrollArea->setWidget(widget);
}
-
- m_children.append(declarativeObject);
}
-void DeclarativeScrollArea::setLayout(QLayout *layout, AbstractDeclarativeObject *declarativeObject)
+void DeclarativeScrollAreaExtension::setLayout(QLayout *layout)
{
Q_UNUSED(layout);
- Q_UNUSED(declarativeObject);
- qmlInfo(this) << "Can not add Layout to ScrollArea";
+ qmlInfo(extendedScrollArea()) << "Can not add Layout to ScrollArea";
}
-
-CUSTOM_METAOBJECT(DeclarativeScrollArea, QScrollArea)
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#ifndef DECLARATIVESCROLLAREA_P_H
-#define DECLARATIVESCROLLAREA_P_H
+#ifndef DECLARATIVESCROLLAREAEXTENSION_P_H
+#define DECLARATIVESCROLLAREAEXTENSION_P_H
-#include "declarativewidgetproxy_p.h"
+#include "declarativewidgetextension.h"
-#include <QScrollArea>
+class QScrollArea;
-class DeclarativeScrollArea : public DeclarativeWidgetProxy<QScrollArea>
+class DeclarativeScrollAreaExtension : public DeclarativeWidgetExtension
{
- DECLARATIVE_OBJECT
+ Q_OBJECT
+
+ // repeat property declarations, qmlRegisterExtendedType doesn't see the ones from base class
+ Q_PROPERTY(QDeclarativeListProperty<QObject> data READ data DESIGNABLE false)
+
+ Q_CLASSINFO("DefaultProperty", "data")
public:
- explicit DeclarativeScrollArea(QObject *parent = 0);
+ explicit DeclarativeScrollAreaExtension(QObject *parent = 0);
+
+ QScrollArea *extendedScrollArea() const;
protected:
- void addWidget(QWidget *widget, AbstractDeclarativeObject *declarativeObject);
- void setLayout(QLayout *layout, AbstractDeclarativeObject *declarativeObject);
+ void addWidget(QWidget *widget);
+ void setLayout(QLayout *layout);
};
#endif
#include "declarativemessagebox_p.h"
#include "declarativeplaintextedit_p.h"
#include "declarativeprogressbar_p.h"
-#include "declarativescrollarea_p.h"
+#include "declarativescrollareaextension_p.h"
#include "declarativescrollbar_p.h"
#include "declarativeseparator_p.h"
#include "declarativespinbox_p.h"
qmlRegisterType<DeclarativeLCDNumber>("QtGui", 1, 0, "LCDNumber");
qmlRegisterType<DeclarativePlainTextEdit>("QtGui", 1, 0, "PlainTextEdit");
qmlRegisterType<DeclarativeProgressBar>("QtGui", 1, 0, "ProgressBar");
- qmlRegisterType<DeclarativeScrollArea>("QtGui", 1, 0, "ScrollArea");
qmlRegisterType<DeclarativeScrollBar>("QtGui", 1, 0, "ScrollBar");
qmlRegisterType<DeclarativeSpinBox>("QtGui", 1, 0, "SpinBox");
qmlRegisterType<DeclarativeStackedWidget>("QtGui", 1, 0, "StackedWidget");
qmlRegisterExtendedType<DeclarativeMessageBox, DeclarativeWidgetExtension>("QtGui", 1, 0, "MessageBox");
qmlRegisterExtendedType<QPushButton, DeclarativeWidgetExtension>("QtGui", 1, 0, "PushButton");
qmlRegisterExtendedType<QRadioButton, DeclarativeWidgetExtension>("QtGui", 1, 0, "RadioButton");
+ qmlRegisterExtendedType<QScrollArea, DeclarativeScrollAreaExtension>("QtGui", 1, 0, "ScrollArea");
qmlRegisterExtendedType<QSlider, DeclarativeWidgetExtension>("QtGui", 1, 0, "Slider");
qmlRegisterExtendedType<DeclarativeStatusBar, DeclarativeStatusBarExtension>("QtGui", 1, 0, "StatusBar");
qmlRegisterExtendedType<QTableView, DeclarativeItemViewExtension>("QtGui", 1, 0, "TableView");
declarativeobjectproxy_p.h \
declarativeplaintextedit_p.h \
declarativeprogressbar_p.h \
- declarativescrollarea_p.h \
+ declarativescrollareaextension_p.h \
declarativescrollbar_p.h \
declarativeseparator_p.h \
declarativespinbox_p.h \
declarativeobjectextension.cpp \
declarativeplaintextedit.cpp \
declarativeprogressbar.cpp \
- declarativescrollarea.cpp \
+ declarativescrollareaextension.cpp \
declarativescrollbar.cpp \
declarativeseparator.cpp \
declarativespinbox.cpp \