From 5edf17a3922fa3185a28cf442c00cd6a448c1dbf Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Wed, 18 Jul 2012 17:05:55 -0300 Subject: Implement color dialog chooser when you select an . Reviewed-by: Rafael Brandao --- src/desktop/DialogRunner.cpp | 16 ++++++++++++++++ src/desktop/DialogRunner.h | 6 ++++++ src/desktop/qml/PageWidget.qml | 15 +++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/src/desktop/DialogRunner.cpp b/src/desktop/DialogRunner.cpp index 17442fc..edf1fe2 100644 --- a/src/desktop/DialogRunner.cpp +++ b/src/desktop/DialogRunner.cpp @@ -44,3 +44,19 @@ void DialogRunner::openFileDialog(QObject* filePickerModel) m_fileDialog->open(); } +void DialogRunner::openColorDialog(QObject* colorDialogModel) +{ + if (!colorDialogModel) + return; + + if (!m_colorDialog) { + m_colorDialog.reset(new QColorDialog); + connect(m_colorDialog.data(), SIGNAL(rejected()), this, SIGNAL(colorDialogRejected())); + connect(m_colorDialog.data(), SIGNAL(colorSelected(const QColor&)), this, SIGNAL(colorDialogAccepted(const QColor&))); + } + + m_colorDialog->setCurrentColor(colorDialogModel->property("currentColor").value()); + m_colorDialog->setWindowTitle(QLatin1String("Choose Color - Snowshoe")); + m_colorDialog->open(); +} + diff --git a/src/desktop/DialogRunner.h b/src/desktop/DialogRunner.h index 750d4ee..c99f9e5 100644 --- a/src/desktop/DialogRunner.h +++ b/src/desktop/DialogRunner.h @@ -17,6 +17,7 @@ #ifndef DialogRunner_h #define DialogRunner_h +#include #include #include #include @@ -27,13 +28,18 @@ public: explicit DialogRunner(QObject* parent = 0); Q_INVOKABLE void openFileDialog(QObject* filePickerModel); + Q_INVOKABLE void openColorDialog(QObject* colorDialogModel); Q_SIGNALS: void fileDialogAccepted(const QStringList& selectedFiles); void fileDialogRejected(); + void colorDialogAccepted(const QColor& selectedColor); + void colorDialogRejected(); + private: QScopedPointer m_fileDialog; + QScopedPointer m_colorDialog; }; #endif // DialogRunner_h diff --git a/src/desktop/qml/PageWidget.qml b/src/desktop/qml/PageWidget.qml index 7add516..0434bcb 100644 --- a/src/desktop/qml/PageWidget.qml +++ b/src/desktop/qml/PageWidget.qml @@ -104,6 +104,21 @@ Item { } } + experimental.colorChooser: Item { + id: colorChooser + // We can't use the model directly in the Connection below. + property QtObject colorChooserModel: model + Connections { + target: DialogRunner + onColorDialogAccepted: colorChooser.colorChooserModel.accept(selectedColor) + onColorDialogRejected: colorChooser.colorChooserModel.reject() + } + + Component.onCompleted: { + DialogRunner.openColorDialog(colorChooserModel) + } + } + experimental.onDownloadRequested: { downloadItem.destinationPath = BrowserWindow.decideDownloadPath(downloadItem.suggestedFilename) downloadItem.start() -- cgit v1.2.1