[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krita] libs: Fix "Instant Preview" checkbox work correctly on initialization
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2016-10-18 13:30:05
Message-ID: E1bwUSz-0001YT-De () code ! kde ! org
[Download RAW message or body]

Git commit e291d4ea6d3a7899bc37faabb2f406198cfd2e49 by Dmitry Kazakov.
Committed on 18/10/2016 at 13:29.
Pushed by dkazakov into branch 'master'.

Fix "Instant Preview" checkbox work correctly on initialization

This patch also makes the resources setting more straightforward,
in the same way other properties work.

M  +0    -22   libs/image/brushengine/kis_paintop_config_widget.cpp
M  +2    -21   libs/image/brushengine/kis_paintop_config_widget.h
M  +2    -2    libs/ui/kis_canvas_resource_provider.h
M  +0    -4    libs/ui/kis_paintop_settings_widget.cpp
M  +23   -7    libs/ui/widgets/kis_paintop_presets_popup.cpp
M  +2    -0    libs/ui/widgets/kis_paintop_presets_popup.h

http://commits.kde.org/krita/e291d4ea6d3a7899bc37faabb2f406198cfd2e49

diff --git a/libs/image/brushengine/kis_paintop_config_widget.cpp \
b/libs/image/brushengine/kis_paintop_config_widget.cpp index 254749c..e956181 100644
--- a/libs/image/brushengine/kis_paintop_config_widget.cpp
+++ b/libs/image/brushengine/kis_paintop_config_widget.cpp
@@ -23,7 +23,6 @@
 
 KisPaintOpConfigWidget::KisPaintOpConfigWidget(QWidget * parent, Qt::WFlags f)
     : KisConfigWidget(parent, f, 10),
-      m_userAllowedLod(true),
       m_isInsideUpdateCall(0)
 {
 }
@@ -50,16 +49,6 @@ void KisPaintOpConfigWidget::setConfigurationSafe(const \
KisPropertiesConfigurati  m_isInsideUpdateCall--;
 }
 
-void KisPaintOpConfigWidget::writeConfiguration(KisPropertiesConfigurationSP config) \
                const
-{
-    KisPaintOpSettings::setLodUserAllowed(config, m_userAllowedLod);
-}
-
-void KisPaintOpConfigWidget::setConfiguration(const KisPropertiesConfigurationSP  \
                config) {
-    m_userAllowedLod = KisPaintOpSettings::isLodUserAllowed(config);
-    emit sigUserChangedLodAvailability(m_userAllowedLod);
-}
-
 void KisPaintOpConfigWidget::setImage(KisImageWSP image) {
     m_image = image;
 }
@@ -75,14 +64,3 @@ bool KisPaintOpConfigWidget::presetIsValid() {
 bool KisPaintOpConfigWidget::supportScratchBox() {
     return true;
 }
-
-void KisPaintOpConfigWidget::slotUserChangedLodAvailability(bool value) {
-    m_userAllowedLod = value;
-    emit sigConfigurationItemChanged();
-}
-
-void KisPaintOpConfigWidget::coldInitExternalLodAvailabilityWidget()
-{
-    emit sigUserChangedLodAvailability(m_userAllowedLod);
-    emit sigConfigurationItemChanged();
-}
diff --git a/libs/image/brushengine/kis_paintop_config_widget.h \
b/libs/image/brushengine/kis_paintop_config_widget.h index 989c578..4e987ff 100644
--- a/libs/image/brushengine/kis_paintop_config_widget.h
+++ b/libs/image/brushengine/kis_paintop_config_widget.h
@@ -43,12 +43,8 @@ public:
     void setConfigurationSafe(const KisPropertiesConfigurationSP config);
 
 protected:
-    /**
-     * Write the settings in this widget to the given properties
-     * configuration, which is cleared first.
-     */
-    virtual void writeConfiguration(KisPropertiesConfigurationSP config) const;
-    virtual void setConfiguration(const KisPropertiesConfigurationSP  config);
+    virtual void setConfiguration(const KisPropertiesConfigurationSP  config) = 0;
+    virtual void writeConfiguration(KisPropertiesConfigurationSP config) const = 0;
 
 public:
 
@@ -70,24 +66,9 @@ public:
      */
     virtual bool supportScratchBox();
 
-
-    /**
-     * This call makes KisPaintOpConfigWidget emit
-     * sigUserChangedLodAvailability() signal with the current
-     * availability value
-     */
-    void coldInitExternalLodAvailabilityWidget();
-
-public Q_SLOTS:
-    void slotUserChangedLodAvailability(bool value);
-
-Q_SIGNALS:
-    void sigUserChangedLodAvailability(bool value);
-
 protected:
     KisImageWSP m_image;
     KisNodeWSP m_node;
-    bool m_userAllowedLod;
 
     mutable int m_isInsideUpdateCall;
 };
diff --git a/libs/ui/kis_canvas_resource_provider.h \
b/libs/ui/kis_canvas_resource_provider.h index 1e4cc49..ad27ef9 100644
--- a/libs/ui/kis_canvas_resource_provider.h
+++ b/libs/ui/kis_canvas_resource_provider.h
@@ -61,7 +61,7 @@ public:
         CurrentGeneratorConfiguration,
         CurrentCompositeOp,
         CurrentEffectiveCompositeOp,
-        LodAvailability,
+        LodAvailability, ///<-user choice
         EraserMode,
         MirrorHorizontal,
         MirrorVertical,
@@ -78,7 +78,7 @@ public:
         DisablePressure,
         PreviousPaintOpPreset,
         EffectiveZoom, ///<-Used only by painting tools for non-displaying purposes
-        PresetAllowsLod,
+        PresetAllowsLod, ///<-combination of the user choice and thechnical \
abilities of the preset  SelectionAction,
         SelectionMode
     };
diff --git a/libs/ui/kis_paintop_settings_widget.cpp \
b/libs/ui/kis_paintop_settings_widget.cpp index 667037f..ed5b65a7 100644
--- a/libs/ui/kis_paintop_settings_widget.cpp
+++ b/libs/ui/kis_paintop_settings_widget.cpp
@@ -130,8 +130,6 @@ void KisPaintOpSettingsWidget::setConfiguration(const \
KisPropertiesConfiguration  m_d->model->signalDataChanged(m_d->model->indexOf(info));
         indexcount++;
     }
-
-    KisPaintOpConfigWidget::setConfiguration(propertiesProxy);
 }
 
 void KisPaintOpSettingsWidget::writeConfiguration(KisPropertiesConfigurationSP \
config) const @@ -140,8 +138,6 @@ void \
KisPaintOpSettingsWidget::writeConfiguration(KisPropertiesConfigurationSP c  \
Q_FOREACH (const KisPaintOpOption* option, m_d->paintOpOptions) {  \
option->startWriteOptionSetting(propertiesProxy);  }
-
-    KisPaintOpConfigWidget::writeConfiguration(propertiesProxy);
 }
 
 KisPaintopLodLimitations KisPaintOpSettingsWidget::lodLimitations() const
diff --git a/libs/ui/widgets/kis_paintop_presets_popup.cpp \
b/libs/ui/widgets/kis_paintop_presets_popup.cpp index efb736e..94260f5 100644
--- a/libs/ui/widgets/kis_paintop_presets_popup.cpp
+++ b/libs/ui/widgets/kis_paintop_presets_popup.cpp
@@ -162,8 +162,31 @@ \
                KisPaintOpPresetsPopup::KisPaintOpPresetsPopup(KisCanvasResourceProvider \
                * resou
     m_d->uiWdgPaintOpPresetSettings.eraserBrushOpacityCheckBox->setChecked(cfg.useEraserBrushOpacity());
  
     m_d->uiWdgPaintOpPresetSettings.wdgLodAvailability->setCanvasResourceManager(resourceProvider->resourceManager());
 +
+    connect(resourceProvider->resourceManager(),
+            SIGNAL(canvasResourceChanged(int,QVariant)),
+            SLOT(slotResourceChanged(int, QVariant)));
+
+    connect(m_d->uiWdgPaintOpPresetSettings.wdgLodAvailability,
+            SIGNAL(sigUserChangedLodAvailability(bool)),
+            SLOT(slotLodAvailabilityChanged(bool)));
+
+    slotResourceChanged(KisCanvasResourceProvider::LodAvailability,
+                        resourceProvider->resourceManager()->
+                            resource(KisCanvasResourceProvider::LodAvailability));
 }
 
+void KisPaintOpPresetsPopup::slotResourceChanged(int key, const QVariant &value)
+{
+    if (key == KisCanvasResourceProvider::LodAvailability) {
+        m_d->uiWdgPaintOpPresetSettings.wdgLodAvailability->slotUserChangedLodAvailability(value.toBool());
 +    }
+}
+
+void KisPaintOpPresetsPopup::slotLodAvailabilityChanged(bool value)
+{
+    m_d->resourceProvider->resourceManager()->setResource(KisCanvasResourceProvider::LodAvailability, \
QVariant(value)); +}
 
 KisPaintOpPresetsPopup::~KisPaintOpPresetsPopup()
 {
@@ -199,16 +222,9 @@ void KisPaintOpPresetsPopup::setPaintOpSettingsWidget(QWidget * \
widget)  hideScratchPad();
         }
 
-        m_d->widgetConnections.addConnection(m_d->uiWdgPaintOpPresetSettings.wdgLodAvailability, \
                SIGNAL(sigUserChangedLodAvailability(bool)),
-                                             m_d->settingsWidget, \
                SLOT(slotUserChangedLodAvailability(bool)));
-        m_d->widgetConnections.addConnection(m_d->settingsWidget, \
                SIGNAL(sigUserChangedLodAvailability(bool)),
-                                             \
m_d->uiWdgPaintOpPresetSettings.wdgLodAvailability, \
                SLOT(slotUserChangedLodAvailability(bool)));
         m_d->widgetConnections.addConnection(m_d->settingsWidget, \
                SIGNAL(sigConfigurationItemChanged()),
                                              this, \
SLOT(slotUpdateLodAvailability()));  
-        m_d->settingsWidget->coldInitExternalLodAvailabilityWidget();
-
-
         widget->setFont(m_d->smallFont);
 
         QSize hint = widget->sizeHint();
diff --git a/libs/ui/widgets/kis_paintop_presets_popup.h \
b/libs/ui/widgets/kis_paintop_presets_popup.h index 3cf9829..6751dbe 100644
--- a/libs/ui/widgets/kis_paintop_presets_popup.h
+++ b/libs/ui/widgets/kis_paintop_presets_popup.h
@@ -104,6 +104,8 @@ Q_SIGNALS:
 private Q_SLOTS:
     void slotSwitchPresetStrip(bool visible);
     void slotSwitchScratchpad(bool visible);
+    void slotResourceChanged(int key, const QVariant &value);
+    void slotLodAvailabilityChanged(bool value);
 
 private:
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic