#include "declarativeobjects_p.h"
-FileDialog::FileDialog(QWidget *parent)
- : QFileDialog(parent)
-{
-}
-
-InputDialog::InputDialog(QWidget *parent)
- : QInputDialog(parent)
-{
- connect(this, SIGNAL(textValueChanged(QString)), this, SIGNAL(customTextValueChanged()));
- connect(this, SIGNAL(intValueChanged(int)), this, SIGNAL(customIntValueChanged()));
- connect(this, SIGNAL(doubleValueChanged(double)), this, SIGNAL(customDoubleValueChanged()));
-}
-
-TextEdit::TextEdit(QWidget *parent)
- : QTextEdit(parent)
-{
- connect(document(), SIGNAL(modificationChanged(bool)), this, SIGNAL(modifiedChanged()));
-}
-
-bool TextEdit::modified() const
-{
- return document()->isModified();
-}
+#include <QDebug>
+// ActionItem
ActionItem::ActionItem(QObject *parent)
: QObject(parent)
, m_placeholderAction(new QAction(this))
{
return m_action;
}
+
+// ButtonGroup
+ButtonGroup::ButtonGroup(QObject *parent)
+ : QButtonGroup(parent)
+{
+}
+
+void ButtonGroup::setButtons(const QVariantList &buttons)
+{
+ if (m_buttons == buttons)
+ return;
+
+ // First remove the old buttons ...
+ foreach (const QVariant &variant, m_buttons) {
+ QObject *object = variant.value<QObject*>();
+ if (object) {
+ AbstractDeclarativeObject *declarativeObject = dynamic_cast<AbstractDeclarativeObject*>(object);
+ if (declarativeObject) {
+ QAbstractButton *button = qobject_cast<QAbstractButton*>(declarativeObject->object());
+ if (button)
+ QButtonGroup::removeButton(button);
+ }
+ }
+ }
+
+ m_buttons = buttons;
+
+ // ... then add the new ones
+ foreach (const QVariant &variant, m_buttons) {
+ QObject *object = variant.value<QObject*>();
+ if (object) {
+ AbstractDeclarativeObject *declarativeObject = dynamic_cast<AbstractDeclarativeObject*>(object);
+ if (declarativeObject) {
+ QAbstractButton *button = qobject_cast<QAbstractButton*>(declarativeObject->object());
+ if (button)
+ QButtonGroup::addButton(button);
+ }
+ }
+ }
+
+ emit buttonsChanged();
+}
+
+QVariantList ButtonGroup::buttons() const
+{
+ return m_buttons;
+}
+
+// FileDialog
+FileDialog::FileDialog(QWidget *parent)
+ : QFileDialog(parent)
+{
+}
+
+// InputDialog
+InputDialog::InputDialog(QWidget *parent)
+ : QInputDialog(parent)
+{
+ connect(this, SIGNAL(textValueChanged(QString)), this, SIGNAL(customTextValueChanged()));
+ connect(this, SIGNAL(intValueChanged(int)), this, SIGNAL(customIntValueChanged()));
+ connect(this, SIGNAL(doubleValueChanged(double)), this, SIGNAL(customDoubleValueChanged()));
+}
+
+// TextEdit
+TextEdit::TextEdit(QWidget *parent)
+ : QTextEdit(parent)
+{
+ connect(document(), SIGNAL(modificationChanged(bool)), this, SIGNAL(modifiedChanged()));
+}
+
+bool TextEdit::modified() const
+{
+ return document()->isModified();
+}
#define OBJECTADAPTORS_P_H
#include <QtGui/QAction>
+#include <QtGui/QButtonGroup>
#include <QtGui/QFileDialog>
#include <QtGui/QInputDialog>
#include <QtGui/QTextEdit>
+class ActionItem : public QObject
+{
+ Q_OBJECT
+
+ Q_PROPERTY(QVariant action READ qmlAction WRITE setAction NOTIFY actionChanged)
+
+ public:
+ ActionItem(QObject *parent = 0);
+
+ QAction* action();
+
+ Q_SIGNALS:
+ void actionChanged();
+
+ private:
+ void setAction(const QVariant &action);
+ QVariant qmlAction() const;
+
+ QVariant m_action;
+ QAction* m_placeholderAction;
+ QAction* m_qAction;
+};
+
+class ButtonGroup : public QButtonGroup
+{
+ Q_OBJECT
+
+ Q_PROPERTY(QVariantList buttons READ buttons WRITE setButtons NOTIFY buttonsChanged)
+
+ public:
+ ButtonGroup(QObject *parent = 0);
+
+ Q_SIGNALS:
+ void buttonsChanged();
+
+ private:
+ void setButtons(const QVariantList &buttons);
+ QVariantList buttons() const;
+
+ QVariantList m_buttons;
+};
+
class FileDialog : public QFileDialog
{
Q_OBJECT
bool modified() const;
};
-class ActionItem : public QObject
-{
- Q_OBJECT
-
- Q_PROPERTY(QVariant action READ qmlAction WRITE setAction NOTIFY actionChanged)
-
- public:
- ActionItem(QObject *parent = 0);
-
- QAction* action();
-
- Q_SIGNALS:
- void actionChanged();
-
- private:
- void setAction(const QVariant &action);
- QVariant qmlAction() const;
-
- QVariant m_action;
- QAction* m_placeholderAction;
- QAction* m_qAction;
-};
-
#endif