PushButton {
text: qsTr("Color Dialog::getColor")
onClicked: {
- console.log("Selected color: " + ColorDialog.getColor("#ff0000"))
+ console.log("Selected color: " + ColorDialog.getColor())
+ }
+ }
+
+ PushButton {
+ text: qsTr("Color Dialog::getColor with initial color")
+ onClicked: {
+ console.log("Selected color: " + ColorDialog.getColor("#ff0000"))
}
}
PushButton {
text: qsTr("Color Dialog::getColor with title")
onClicked: {
- ColorDialog.title = "Pick a color"
- console.log("Selected color: " + ColorDialog.getColor("#ff0000"))
+ ColorDialog.title = "Pick a color"
+ console.log("Selected color: " + ColorDialog.getColor())
+ }
+ }
+
+ PushButton {
+ text: qsTr("Color Dialog::getColor with options")
+ onClicked: {
+ ColorDialog.options = ColorDialog.NoButtons | ColorDialog.ShowAlphaChannel
+ console.log("Selected color: " + ColorDialog.getColor())
}
}
return d->title;
}
+void DeclarativeColorDialogAttached::setOptions(int options)
+{
+ if (d->options == options)
+ return;
+
+ d->options = static_cast<QColorDialog::ColorDialogOptions>(options);
+ emit optionsChanged(options);
+}
+
+int DeclarativeColorDialogAttached::options() const
+{
+ return d->options;
+}
+
+QColor DeclarativeColorDialogAttached::getColor()
+{
+ QWidget *parent = bestParentWindow();
+ if (!d->title.isEmpty() || d->options != 0)
+ return QColorDialog::getColor(Qt::white, parent, d->title, d->options);
+ else
+ return QColorDialog::getColor(Qt::white, parent);
+}
+
QColor DeclarativeColorDialogAttached::getColor(const QColor &initialColor)
{
QWidget *parent = bestParentWindow();
{
Q_OBJECT
Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
- // TODO option
+ Q_PROPERTY(int options READ options WRITE setOptions NOTIFY optionsChanged)
public:
DeclarativeColorDialogAttached(QObject *parent = 0);
void setTitle(const QString &title);
QString title() const;
+ void setOptions(int options);
+ int options() const;
+
+ Q_INVOKABLE QColor getColor();
Q_INVOKABLE QColor getColor(const QColor &initialColor);
Q_SIGNALS:
void titleChanged(const QString &title);
+ void optionsChanged(int options);
private:
class Private;