summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp')
-rw-r--r--src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp79
1 files changed, 25 insertions, 54 deletions
diff --git a/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp b/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp
index 76db41a177..3d7a9207c0 100644
--- a/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp
+++ b/src/plugins/qmldesigner/components/edit3d/backgroundcolorselection.cpp
@@ -23,85 +23,56 @@
**
****************************************************************************/
-#include "backgroundcolorselection.h"
+#pragma once
+
+#include <QColorDialog>
-#include <nodeinstanceview.h>
#include <utils/qtcassert.h>
-#include <view3dactioncommand.h>
-#include <qmldesignerplugin.h>
+
+#include "backgroundcolorselection.h"
+#include "edit3dviewconfig.h"
using namespace QmlDesigner;
-namespace {
-QList<QColor> readBackgroundColorConfiguration()
+void BackgroundColorSelection::showBackgroundColorSelectionWidget(QWidget *parent, const QByteArray &key,
+ View3DActionCommand::Type cmdType)
{
- QVariant var = QmlDesigner::DesignerSettings::getValue(
- QmlDesigner::DesignerSettingsKey::EDIT3DVIEW_BACKGROUND_COLOR);
-
- if (!var.isValid())
- return {};
-
- auto colorNameList = var.value<QList<QString>>();
- QTC_ASSERT(colorNameList.size() == 2, return {});
-
- return {colorNameList[0], colorNameList[1]};
-}
+ if (m_dialog)
+ return;
-void setBackgroundColorConfiguration(const QList<QColor> &colorConfig)
-{
- auto view = QmlDesignerPlugin::instance()->viewManager().nodeInstanceView();
- View3DActionCommand cmd(View3DActionCommand::SelectBackgroundColor,
- QVariant::fromValue(colorConfig));
- view->view3DAction(cmd);
-}
+ m_dialog = BackgroundColorSelection::createColorDialog(parent, key, cmdType);
+ QTC_ASSERT(m_dialog, return);
-void saveBackgroundColorConfiguration(const QList<QColor> &colorConfig)
-{
- QList<QString> colorsSaved = {colorConfig[0].name(), colorConfig[1].name()};
- QmlDesigner::DesignerSettings::setValue(
- QmlDesigner::DesignerSettingsKey::EDIT3DVIEW_BACKGROUND_COLOR,
- QVariant::fromValue(colorsSaved));
+ QObject::connect(m_dialog, &QWidget::destroyed, m_dialog, [&]() {
+ m_dialog = nullptr;
+ });
}
-} // namespace
-
-QColorDialog *BackgroundColorSelection::createDialog(QWidget *parent)
+QColorDialog *BackgroundColorSelection::createColorDialog(QWidget *parent, const QByteArray &key,
+ View3DActionCommand::Type cmdType)
{
auto dialog = new QColorDialog(parent);
dialog->setModal(true);
dialog->setAttribute(Qt::WA_DeleteOnClose);
- const QList<QColor> oldColorConfig = readBackgroundColorConfiguration();
+ QList<QColor> oldColorConfig = Edit3DViewConfig::load(key);
dialog->show();
- QObject::connect(dialog, &QColorDialog::currentColorChanged, dialog, [](const QColor &color) {
- setBackgroundColorConfiguration({color, color});
+ QObject::connect(dialog, &QColorDialog::currentColorChanged, dialog, [cmdType](const QColor &color) {
+ Edit3DViewConfig::set(cmdType, color);
});
- QObject::connect(dialog, &QColorDialog::colorSelected, dialog, [](const QColor &color) {
- saveBackgroundColorConfiguration({color, color});
+ QObject::connect(dialog, &QColorDialog::colorSelected, dialog, [key](const QColor &color) {
+ Edit3DViewConfig::save(key, color);
});
- if (!oldColorConfig.isEmpty()) {
- QObject::connect(dialog, &QColorDialog::rejected, dialog, [oldColorConfig]() {
- setBackgroundColorConfiguration(oldColorConfig);
+ if (Edit3DViewConfig::isValid(oldColorConfig)) {
+ QObject::connect(dialog, &QColorDialog::rejected, dialog, [cmdType, oldColorConfig]() {
+ Edit3DViewConfig::set(cmdType, oldColorConfig);
});
}
return dialog;
}
-
-void BackgroundColorSelection::showBackgroundColorSelectionWidget(QWidget *parent)
-{
- if (m_dialog)
- return;
-
- m_dialog = BackgroundColorSelection::createDialog(parent);
- QTC_ASSERT(m_dialog, return);
-
- QObject::connect(m_dialog, &QWidget::destroyed, m_dialog, [&]() {
- m_dialog = nullptr;
- });
-}