From 339e21d5fc0fd74d79717a77aba43e375c3cc509 Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Kempf <jb@videolan.org>
Date: Sun, 29 Sep 2013 18:44:44 +0200
Subject: [PATCH] Qt: introduce hqdn3d in the effects UI

---
 .../gui/qt4/components/extended_panels.cpp    |  12 +-
 modules/gui/qt4/ui/video_effects.ui           | 316 +++++++++++++-----
 2 files changed, 234 insertions(+), 94 deletions(-)

diff --git a/modules/gui/qt4/components/extended_panels.cpp b/modules/gui/qt4/components/extended_panels.cpp
index 532e8117800a..360403407c8f 100644
--- a/modules/gui/qt4/components/extended_panels.cpp
+++ b/modules/gui/qt4/components/extended_panels.cpp
@@ -203,11 +203,17 @@ ExtVideo::ExtVideo( intf_thread_t *_p_intf, QTabWidget *_parent ) :
     SETUP_VFILTER( mirror )
 
     SETUP_VFILTER( gaussianblur )
-    SETUP_VFILTER_OPTION( gaussianbluSigmaSlider, valueChanged( int ) )
+    SETUP_VFILTER_OPTION( gaussianblurSigmaSlider, valueChanged( int ) )
 
     SETUP_VFILTER( antiflicker )
     SETUP_VFILTER_OPTION( antiflickerSofteningSizeSlider, valueChanged( int ) )
 
+    SETUP_VFILTER( hqdn3d )
+    SETUP_VFILTER_OPTION( hqdn3dLumaSpatSlider, valueChanged( int ) )
+    SETUP_VFILTER_OPTION( hqdn3dLumaTempSlider, valueChanged( int ) )
+    SETUP_VFILTER_OPTION( hqdn3dChromaSpatSlider, valueChanged( int ) )
+    SETUP_VFILTER_OPTION( hqdn3dChromaTempSlider, valueChanged( int ) )
+
 
     if( module_exists( "atmo" ) )
     {
@@ -585,9 +591,9 @@ void ExtVideo::setWidgetValue( QObject *widget )
 void ExtVideo::updateFilterOptions()
 {
     QString module = ModuleFromWidgetName( sender()->parent() );
-    //std::cout << "Module name: " << module.toStdString() << std::endl;
+    //msg_Dbg( p_intf, "Module name: %s", qtu( module ) );
     QString option = OptionFromWidgetName( sender() );
-    //std::cout << "Option name: " << option.toStdString() << std::endl;
+    //msg_Dbg( p_intf, "Option name: %s", qtu( option ) );
 
     vlc_object_t *p_obj = ( vlc_object_t * )
         vlc_object_find_name( p_intf->p_libvlc, qtu( module ) );
diff --git a/modules/gui/qt4/ui/video_effects.ui b/modules/gui/qt4/ui/video_effects.ui
index e6ad2b3fbca9..6284e22d65fe 100644
--- a/modules/gui/qt4/ui/video_effects.ui
+++ b/modules/gui/qt4/ui/video_effects.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>550</width>
-    <height>327</height>
+    <width>654</width>
+    <height>345</height>
    </rect>
   </property>
   <property name="currentIndex">
@@ -1554,8 +1554,101 @@
    <attribute name="title">
     <string>Advanced</string>
    </attribute>
-   <layout class="QGridLayout" name="gridLayout_12">
-    <item row="3" column="0" rowspan="3">
+   <layout class="QGridLayout" name="gridLayout_7">
+    <item row="2" column="1" rowspan="2">
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QCheckBox" name="anaglyphEnable">
+        <property name="text">
+         <string>Anaglyph 3D</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="mirrorEnable">
+        <property name="text">
+         <string>Mirror</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="psychedelicEnable">
+        <property name="text">
+         <string>Psychedelic</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="waveEnable">
+        <property name="text">
+         <string>Waves</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="rippleEnable">
+        <property name="text">
+         <string>Water effect</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="motiondetectEnable">
+        <property name="text">
+         <string>Motion detect</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item row="2" column="0">
+     <widget class="QGroupBox" name="gaussianblurEnable">
+      <property name="title">
+       <string>Spatial blur</string>
+      </property>
+      <property name="checkable">
+       <bool>true</bool>
+      </property>
+      <property name="checked">
+       <bool>false</bool>
+      </property>
+      <layout class="QGridLayout" name="gridLayout_17">
+       <item row="0" column="0">
+        <widget class="QLabel" name="label_35">
+         <property name="text">
+          <string>Sigma</string>
+         </property>
+         <property name="buddy">
+          <cstring>blurFactorSlider</cstring>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QSlider" name="gaussianblurSigmaSlider">
+         <property name="minimum">
+          <number>1</number>
+         </property>
+         <property name="maximum">
+          <number>127</number>
+         </property>
+         <property name="value">
+          <number>80</number>
+         </property>
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="tickPosition">
+          <enum>QSlider::TicksBelow</enum>
+         </property>
+         <property name="tickInterval">
+          <number>16</number>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item row="1" column="0">
      <widget class="QGroupBox" name="motionblurEnable">
       <property name="title">
        <string>Motion blur</string>
@@ -1602,34 +1695,7 @@
       </layout>
      </widget>
     </item>
-    <item row="3" column="2">
-     <widget class="QCheckBox" name="motiondetectEnable">
-      <property name="text">
-       <string>Motion detect</string>
-      </property>
-     </widget>
-    </item>
-    <item row="5" column="2">
-     <widget class="QCheckBox" name="psychedelicEnable">
-      <property name="text">
-       <string>Psychedelic</string>
-      </property>
-     </widget>
-    </item>
-    <item row="9" column="0">
-     <spacer name="verticalSpacer_4">
-      <property name="orientation">
-       <enum>Qt::Vertical</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>20</width>
-        <height>40</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-    <item row="2" column="0">
+    <item row="0" column="0">
      <widget class="QGroupBox" name="antiflickerEnable">
       <property name="title">
        <string>Anti-Flickering</string>
@@ -1676,16 +1742,10 @@
       </layout>
      </widget>
     </item>
-    <item row="2" column="2">
-     <widget class="QGroupBox" name="cloneEnable">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
+    <item row="0" column="1" rowspan="2">
+     <widget class="QGroupBox" name="hqdn3dEnable">
       <property name="title">
-       <string>Clone</string>
+       <string>Denoiser</string>
       </property>
       <property name="checkable">
        <bool>true</bool>
@@ -1693,61 +1753,115 @@
       <property name="checked">
        <bool>false</bool>
       </property>
-      <layout class="QGridLayout" name="gridLayout_7">
+      <layout class="QGridLayout" name="gridLayout_12">
        <item row="0" column="0">
-        <widget class="QLabel" name="label_9">
+        <widget class="QLabel" name="label_44">
          <property name="text">
-          <string>Number of clones</string>
+          <string>Spatial luma strength</string>
          </property>
          <property name="buddy">
-          <cstring>cloneCountSpin</cstring>
+          <cstring>blurFactorSlider</cstring>
          </property>
         </widget>
        </item>
-       <item row="0" column="1">
-        <widget class="QSpinBox" name="cloneCountSpin">
+       <item row="0" column="1" colspan="2">
+        <widget class="QSlider" name="hqdn3dLumaSpatSlider">
          <property name="minimum">
           <number>1</number>
          </property>
+         <property name="maximum">
+          <number>127</number>
+         </property>
          <property name="value">
-          <number>2</number>
+          <number>80</number>
+         </property>
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="tickPosition">
+          <enum>QSlider::TicksBelow</enum>
+         </property>
+         <property name="tickInterval">
+          <number>16</number>
          </property>
         </widget>
        </item>
-      </layout>
-     </widget>
-    </item>
-    <item row="4" column="2">
-     <widget class="QCheckBox" name="rippleEnable">
-      <property name="text">
-       <string>Water effect</string>
-      </property>
-     </widget>
-    </item>
-    <item row="6" column="0" rowspan="2">
-     <widget class="QGroupBox" name="gaussianblurEnable">
-      <property name="title">
-       <string>Spatial blur</string>
-      </property>
-      <property name="checkable">
-       <bool>true</bool>
-      </property>
-      <property name="checked">
-       <bool>false</bool>
-      </property>
-      <layout class="QGridLayout" name="gridLayout_17">
-       <item row="0" column="0">
-        <widget class="QLabel" name="label_35">
+       <item row="1" column="0" colspan="2">
+        <widget class="QLabel" name="label_45">
          <property name="text">
-          <string>Sigma</string>
+          <string>Temporal luma strength</string>
          </property>
          <property name="buddy">
           <cstring>blurFactorSlider</cstring>
          </property>
         </widget>
        </item>
-       <item row="0" column="1">
-        <widget class="QSlider" name="gaussianbluSigmaSlider">
+       <item row="1" column="2">
+        <widget class="QSlider" name="hqdn3dLumaTempSlider">
+         <property name="minimum">
+          <number>1</number>
+         </property>
+         <property name="maximum">
+          <number>127</number>
+         </property>
+         <property name="value">
+          <number>80</number>
+         </property>
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="tickPosition">
+          <enum>QSlider::TicksBelow</enum>
+         </property>
+         <property name="tickInterval">
+          <number>16</number>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="0" colspan="2">
+        <widget class="QLabel" name="label_46">
+         <property name="text">
+          <string>Spatial chroma strength</string>
+         </property>
+         <property name="buddy">
+          <cstring>blurFactorSlider</cstring>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="2">
+        <widget class="QSlider" name="hqdn3dChromaSpatSlider">
+         <property name="minimum">
+          <number>1</number>
+         </property>
+         <property name="maximum">
+          <number>127</number>
+         </property>
+         <property name="value">
+          <number>80</number>
+         </property>
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="tickPosition">
+          <enum>QSlider::TicksBelow</enum>
+         </property>
+         <property name="tickInterval">
+          <number>16</number>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="0">
+        <widget class="QLabel" name="label_47">
+         <property name="text">
+          <string>Temporal chroma strength</string>
+         </property>
+         <property name="buddy">
+          <cstring>blurFactorSlider</cstring>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="2">
+        <widget class="QSlider" name="hqdn3dChromaTempSlider">
          <property name="minimum">
           <number>1</number>
          </property>
@@ -1771,25 +1885,45 @@
       </layout>
      </widget>
     </item>
-    <item row="6" column="2">
-     <widget class="QCheckBox" name="mirrorEnable">
-      <property name="text">
-       <string>Mirror</string>
+    <item row="3" column="0">
+     <widget class="QGroupBox" name="cloneEnable">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
       </property>
-     </widget>
-    </item>
-    <item row="7" column="2">
-     <widget class="QCheckBox" name="waveEnable">
-      <property name="text">
-       <string>Waves</string>
+      <property name="title">
+       <string>Clone</string>
       </property>
-     </widget>
-    </item>
-    <item row="8" column="2">
-     <widget class="QCheckBox" name="anaglyphEnable">
-      <property name="text">
-       <string>Anaglyph 3D</string>
+      <property name="checkable">
+       <bool>true</bool>
       </property>
+      <property name="checked">
+       <bool>false</bool>
+      </property>
+      <layout class="QGridLayout" name="gridLayout">
+       <item row="0" column="0">
+        <widget class="QLabel" name="label_9">
+         <property name="text">
+          <string>Number of clones</string>
+         </property>
+         <property name="buddy">
+          <cstring>cloneCountSpin</cstring>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QSpinBox" name="cloneCountSpin">
+         <property name="minimum">
+          <number>1</number>
+         </property>
+         <property name="value">
+          <number>2</number>
+         </property>
+        </widget>
+       </item>
+      </layout>
      </widget>
     </item>
    </layout>
-- 
GitLab