[vlc-commits] [Git][videolan/vlc][master] qt: implement functionallity to reset the value of a slider to its default...

Steve Lhomme (@robUx4) gitlab at videolan.org
Sun May 3 11:18:36 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
8d47a38a by Paschalis Melissas at 2026-05-03T11:04:49+00:00
qt: implement functionallity to reset the value of a slider to its default value when double-clicking on it

- - - - -


2 changed files:

- modules/gui/qt/dialogs/extended/extended_panels.cpp
- modules/gui/qt/dialogs/extended/extended_panels.hpp


Changes:

=====================================
modules/gui/qt/dialogs/extended/extended_panels.cpp
=====================================
@@ -819,6 +819,7 @@ void ExtV4l2::ValueChange( int value )
 FilterSliderData::FilterSliderData( QObject *parent, QSlider *_slider ) :
     QObject( parent ), slider( _slider )
 {
+    slider->installEventFilter(this);
 }
 
 FilterSliderData::FilterSliderData( QObject *parent,
@@ -838,6 +839,8 @@ FilterSliderData::FilterSliderData( QObject *parent,
     if ( slider->value() == slider->maximum() ||
          slider->value() == slider->minimum() )
         updateText( slider->value() );
+    
+    slider->installEventFilter(this);
     connect( slider, &QSlider::valueChanged, this, &FilterSliderData::onValueChanged );
 }
 
@@ -889,6 +892,16 @@ void FilterSliderData::writeToConfig()
     emit configChanged( p_data->name, QVariant( f ) );
 }
 
+bool FilterSliderData::eventFilter(QObject *watched, QEvent *event)
+{
+    if (event->type() == QEvent::MouseButtonDblClick)
+    {
+        setValue(p_data->f_value);
+        return true;
+    }
+    return false;
+}
+
 AudioFilterControlWidget::AudioFilterControlWidget
 ( qt_intf_t *_p_intf, QWidget *parent, const char *_name ) :
     QWidget( parent ), slidersBox( NULL ), p_intf( _p_intf ), name( _name ),
@@ -1054,6 +1067,38 @@ void EqualizerSliderData::writeToConfig()
     }
 }
 
+bool EqualizerSliderData::eventFilter(QObject *watched, QEvent *event)
+{
+    if (event->type() == QEvent::MouseButtonDblClick)
+    {    
+        SharedAOut p_aout = THEMIM->getAout();
+        if (p_aout)
+        {
+            char *psz_preset = var_GetString(p_aout.get(), "equalizer-preset");
+            if (psz_preset)
+            {
+                int j = -1;
+                for (int i = 0; i < NB_PRESETS; ++i)
+                {
+                    if (!strcmp(psz_preset, preset_list[i]))
+                    {
+                        j = i;
+                        break;
+                    }
+                }
+                free(psz_preset);
+
+                if (j >= 0 && index < eqz_preset_10b[j].i_band)
+                {
+                    setValue(eqz_preset_10b[j].f_amp[index]);
+                    return true;
+                }
+            }
+        }
+    }
+    return FilterSliderData::eventFilter(watched, event);
+}
+
 Equalizer::Equalizer( qt_intf_t *p_intf, QWidget *parent )
     : AudioFilterControlWidget( p_intf, parent, "equalizer" )
 {


=====================================
modules/gui/qt/dialogs/extended/extended_panels.hpp
=====================================
@@ -120,6 +120,7 @@ protected:
     QLabel *nameLabel;
     const slider_data_t *p_data;
     qt_intf_t *p_intf;
+    bool eventFilter(QObject *watched, QEvent *event) override;
 
 public slots:
     virtual void onValueChanged( int i );
@@ -168,6 +169,7 @@ protected:
     int index;
     QStringList getBandsFromAout() const;
     void writeToConfig() override;
+    bool eventFilter(QObject* watched, QEvent* event) override;
 
 public slots:
     void onValueChanged( int i ) override;



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/8d47a38afdd3a18969e241ade782396573de8e78

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/8d47a38afdd3a18969e241ade782396573de8e78
You're receiving this email because of your account on code.videolan.org.




More information about the vlc-commits mailing list