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

List:       kde-commits
Subject:    [calligra/krita-testing-kazakov] krita/plugins/extensions/dockers/lut: Fix three small bugs in LUT d
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2014-04-29 6:08:01
Message-ID: E1Wf1Cz-0003sp-9f () scm ! kde ! org
[Download RAW message or body]

Git commit dd9836902d35f985876dce89f7b70ebd22da41ca by Dmitry Kazakov.
Committed on 29/04/2014 at 06:07.
Pushed by dkazakov into branch 'krita-testing-kazakov'.

Fix three small bugs in LUT docker

1) Don't assert when no OCIO config file is selected
2) Disable not available controls when "Internal" mode is selected
3) Fix loading of the color management mode

Thanks Boud for pointing out these problems! :)

M  +48   -28   krita/plugins/extensions/dockers/lut/lutdocker_dock.cpp
M  +4    -4    krita/plugins/extensions/dockers/lut/wdglut.ui

http://commits.kde.org/calligra/dd9836902d35f985876dce89f7b70ebd22da41ca

diff --git a/krita/plugins/extensions/dockers/lut/lutdocker_dock.cpp \
b/krita/plugins/extensions/dockers/lut/lutdocker_dock.cpp index ddcd2c7..90e6def \
                100644
--- a/krita/plugins/extensions/dockers/lut/lutdocker_dock.cpp
+++ b/krita/plugins/extensions/dockers/lut/lutdocker_dock.cpp
@@ -55,27 +55,34 @@
 
 #include "ocio_display_filter.h"
 
-/**
- * Copied from OCIO, just a noop profile
- */
-const char * INTERNAL_RAW_PROFILE = 
-    "ocio_profile_version: 1\n"
-    "strictparsing: false\n"
-    "roles:\n"
-    "  default: raw\n"
-    "displays:\n"
-    "  sRGB:\n"
-    "  - !<View> {name: Raw, colorspace: raw}\n"
-    "colorspaces:\n"
-    "  - !<ColorSpace>\n"
-    "      name: raw\n"
-    "      family: raw\n"
-    "      equalitygroup:\n"
-    "      bitdepth: 32f\n"
-    "      isdata: true\n"
-    "      allocation: uniform\n"
-    "      description: 'A raw color space. Conversions to and from this space are \
                no-ops.'\n";
-
+OCIO::ConstConfigRcPtr defaultRawProfile()
+{
+    /**
+     * Copied from OCIO, just a noop profile
+     */
+    const char * INTERNAL_RAW_PROFILE = 
+        "ocio_profile_version: 1\n"
+        "strictparsing: false\n"
+        "roles:\n"
+        "  default: raw\n"
+        "displays:\n"
+        "  sRGB:\n"
+        "  - !<View> {name: Raw, colorspace: raw}\n"
+        "colorspaces:\n"
+        "  - !<ColorSpace>\n"
+        "      name: raw\n"
+        "      family: raw\n"
+        "      equalitygroup:\n"
+        "      bitdepth: 32f\n"
+        "      isdata: true\n"
+        "      allocation: uniform\n"
+        "      description: 'A raw color space. Conversions to and from this space \
are no-ops.'\n"; +
+
+    std::istringstream istream;
+    istream.str(INTERNAL_RAW_PROFILE);
+    return OCIO::Config::CreateFromStream(istream);
+}
 
 LutDockerDock::LutDockerDock()
     : QDockWidget(i18n("LUT Management"))
@@ -164,10 +171,8 @@ void LutDockerDock::setCanvas(KoCanvasBase* _canvas)
             connect(m_canvas->image(), SIGNAL(sigColorSpaceChanged(const \
KoColorSpace*)), SLOT(slotImageColorSpaceChanged()), Qt::UniqueConnection);  \
canvas->setDisplayFilter(m_displayFilter);  }
-        slotImageColorSpaceChanged();
-
     }
-    updateDisplaySettings();
+    resetOcioConfiguration();
 }
 
 void LutDockerDock::slotImageColorSpaceChanged()
@@ -231,9 +236,18 @@ void LutDockerDock::enableControls()
     }
 
     bool ocioEnabled = m_chkUseOcio->isChecked();
-
     m_colorManagement->setEnabled(ocioEnabled && canDoExternalColorCorrection);
 
+    bool externalColorManagementEnabled =
+        m_colorManagement->currentIndex() != (int)KisConfig::INTERNAL;
+
+    m_lblInputColorSpace->setEnabled(ocioEnabled && externalColorManagementEnabled);
+    m_cmbInputColorSpace->setEnabled(ocioEnabled && externalColorManagementEnabled);
+    m_lblDisplayDevice->setEnabled(ocioEnabled && externalColorManagementEnabled);
+    m_cmbDisplayDevice->setEnabled(ocioEnabled && externalColorManagementEnabled);
+    m_lblView->setEnabled(ocioEnabled && externalColorManagementEnabled);
+    m_cmbView->setEnabled(ocioEnabled && externalColorManagementEnabled);
+
     bool enableConfigPath = m_colorManagement->currentIndex() == (int) \
KisConfig::OCIO_CONFIG;  
     lblConfig->setEnabled(ocioEnabled && enableConfigPath);
@@ -309,9 +323,7 @@ void LutDockerDock::resetOcioConfiguration()
     KisConfig cfg;
     try {
         if (cfg.ocioColorManagementMode() == KisConfig::INTERNAL) {
-            std::istringstream istream;
-            istream.str(INTERNAL_RAW_PROFILE);
-            m_ocioConfig = OCIO::Config::CreateFromStream(istream);
+            m_ocioConfig = defaultRawProfile();
         } else if (cfg.ocioColorManagementMode() == KisConfig::OCIO_ENVIRONMENT) {
             m_ocioConfig = OCIO::Config::CreateFromEnv();
         }
@@ -320,6 +332,8 @@ void LutDockerDock::resetOcioConfiguration()
 
             if (QFile::exists(configFile)) {
                 m_ocioConfig = OCIO::Config::CreateFromFile(configFile.toUtf8());
+            } else {
+                m_ocioConfig = defaultRawProfile();
             }
         }
         if (m_ocioConfig) {
@@ -338,6 +352,12 @@ void LutDockerDock::refillControls()
     if (!m_canvas) return;
     KIS_ASSERT_RECOVER_RETURN(m_ocioConfig);
 
+    { // Color Management Mode
+        KisConfig cfg;
+        KisSignalsBlocker modeBlocker(m_colorManagement);
+        m_colorManagement->setCurrentIndex((int) cfg.ocioColorManagementMode());
+    }
+
     { // Exposure
         KisSignalsBlocker exposureBlocker(m_exposureDoubleWidget);
         m_exposureDoubleWidget->setValue(m_canvas->view()->resourceProvider()->HDRExposure());
                
diff --git a/krita/plugins/extensions/dockers/lut/wdglut.ui \
b/krita/plugins/extensions/dockers/lut/wdglut.ui index cc175c8..4e5e66a 100644
--- a/krita/plugins/extensions/dockers/lut/wdglut.ui
+++ b/krita/plugins/extensions/dockers/lut/wdglut.ui
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>244</width>
+    <width>282</width>
     <height>279</height>
    </rect>
   </property>
@@ -39,7 +39,7 @@
          </widget>
         </item>
         <item row="4" column="0">
-         <widget class="QLabel" name="label_2">
+         <widget class="QLabel" name="m_lblDisplayDevice">
           <property name="text">
            <string>Display Device:</string>
           </property>
@@ -98,7 +98,7 @@
          </widget>
         </item>
         <item row="3" column="0">
-         <widget class="QLabel" name="label_4">
+         <widget class="QLabel" name="m_lblInputColorSpace">
           <property name="text">
            <string>Input ColorSpace:</string>
           </property>
@@ -223,7 +223,7 @@
          </widget>
         </item>
         <item row="5" column="0">
-         <widget class="QLabel" name="label_3">
+         <widget class="QLabel" name="m_lblView">
           <property name="text">
            <string>View:</string>
           </property>


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

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