From 11c95e3bd3bcc6143559589817266d7a587112a2 Mon Sep 17 00:00:00 2001 From: Digitalone1 Date: Thu, 4 Apr 2024 12:05:29 +0200 Subject: [PATCH 1/6] parse_spinbutton_input: use gdouble --- src/ui_helpers.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui_helpers.cpp b/src/ui_helpers.cpp index 93032b9f7..4600f1c13 100644 --- a/src/ui_helpers.cpp +++ b/src/ui_helpers.cpp @@ -152,7 +152,7 @@ auto parse_spinbutton_output(GtkSpinButton* button, const char* unit, const bool return TRUE; } -auto parse_spinbutton_input(GtkSpinButton* button, double* new_value, const bool& lower_bound) -> gint { +auto parse_spinbutton_input(GtkSpinButton* button, gdouble* new_value, const bool& lower_bound) -> gint { auto min = 0.0; auto max = 0.0; From efcaefeacbe0d3b2f6647172fb219a5a6ec3955b Mon Sep 17 00:00:00 2001 From: Digitalone1 Date: Thu, 4 Apr 2024 12:18:19 +0200 Subject: [PATCH 2/6] fix spinbuttons for gtk v4.14 --- data/ui/app_info.ui | 1 - data/ui/autogain.ui | 3 --- data/ui/bass_enhancer.ui | 6 +----- data/ui/bass_loudness.ui | 3 --- data/ui/compressor.ui | 16 ---------------- data/ui/convolver.ui | 1 - data/ui/crossfeed.ui | 2 -- data/ui/deepfilternet.ui | 7 +------ data/ui/deesser.ui | 9 --------- data/ui/delay.ui | 6 ------ data/ui/echo_canceller.ui | 3 --- data/ui/equalizer.ui | 4 ---- data/ui/equalizer_band.ui | 4 ---- data/ui/exciter.ui | 6 +----- data/ui/expander.ui | 14 -------------- data/ui/filter.ui | 5 ----- data/ui/gate.ui | 15 --------------- data/ui/limiter.ui | 11 +---------- data/ui/loudness.ui | 4 +--- data/ui/maximizer.ui | 3 --- data/ui/multiband_compressor.ui | 2 -- data/ui/multiband_compressor_band.ui | 15 --------------- data/ui/multiband_gate.ui | 2 -- data/ui/multiband_gate_band.ui | 14 -------------- data/ui/pipe_manager_box.ui | 1 - data/ui/pitch.ui | 8 +------- data/ui/preferences_general.ui | 3 --- data/ui/preferences_spectrum.ui | 7 +------ data/ui/reverb.ui | 8 -------- data/ui/rnnoise.ui | 3 --- data/ui/speex.ui | 3 --- data/ui/stereo_tools.ui | 12 ------------ 32 files changed, 7 insertions(+), 194 deletions(-) diff --git a/data/ui/app_info.ui b/data/ui/app_info.ui index d3887fc85..50390db36 100644 --- a/data/ui/app_info.ui +++ b/data/ui/app_info.ui @@ -257,7 +257,6 @@ 1 0.5 0 - if-valid 0 diff --git a/data/ui/autogain.ui b/data/ui/autogain.ui index b8c7c1a7b..0dd8ef1cc 100644 --- a/data/ui/autogain.ui +++ b/data/ui/autogain.ui @@ -46,7 +46,6 @@ 1 - if-valid @@ -71,7 +70,6 @@ 0 - if-valid @@ -95,7 +93,6 @@ 0 - if-valid diff --git a/data/ui/bass_enhancer.ui b/data/ui/bass_enhancer.ui index 504c7266a..909ee1e14 100644 --- a/data/ui/bass_enhancer.ui +++ b/data/ui/bass_enhancer.ui @@ -126,7 +126,6 @@ 1 - if-valid 0 1 @@ -161,7 +160,6 @@ 1 - if-valid 1 1 @@ -195,7 +193,6 @@ 10 - if-valid 2 1 @@ -231,7 +228,6 @@ 10 - if-valid 3 1 @@ -500,4 +496,4 @@ - \ No newline at end of file + diff --git a/data/ui/bass_loudness.ui b/data/ui/bass_loudness.ui index bc9d76c72..828c88da4 100644 --- a/data/ui/bass_loudness.ui +++ b/data/ui/bass_loudness.ui @@ -30,7 +30,6 @@ center 10 1 - if-valid -100 @@ -52,7 +51,6 @@ center 10 1 - if-valid -100 @@ -74,7 +72,6 @@ center 10 1 - if-valid -100 diff --git a/data/ui/compressor.ui b/data/ui/compressor.ui index 6923885ca..29a40977a 100644 --- a/data/ui/compressor.ui +++ b/data/ui/compressor.ui @@ -103,7 +103,6 @@ center 10 1 - if-valid @@ -143,7 +142,6 @@ center 10 1 - if-valid @@ -211,7 +209,6 @@ center 2 10 - if-valid 2000 @@ -233,7 +230,6 @@ center 1 - if-valid -60 @@ -266,7 +262,6 @@ center 6 2 - if-valid 5000 @@ -290,7 +285,6 @@ 6 1 10 - if-valid -100 @@ -325,7 +319,6 @@ vertical 10 2 - if-valid 1 @@ -361,7 +354,6 @@ vertical 10 1 - if-valid -24 @@ -396,7 +388,6 @@ vertical 10 1 - if-valid -60 @@ -431,7 +422,6 @@ vertical 10 1 - if-valid -100 @@ -466,7 +456,6 @@ vertical 10 1 - if-valid -100 @@ -757,7 +746,6 @@ vertical 10 1 - if-valid -120 @@ -794,7 +782,6 @@ vertical 10 2 - if-valid 250 @@ -831,7 +818,6 @@ vertical 10 2 - if-valid 20 @@ -933,7 +919,6 @@ 6 0 10 - if-valid 10 @@ -993,7 +978,6 @@ 6 0 10 - if-valid 10 diff --git a/data/ui/convolver.ui b/data/ui/convolver.ui index e4c4cdb34..6e9bce9c0 100644 --- a/data/ui/convolver.ui +++ b/data/ui/convolver.ui @@ -93,7 +93,6 @@ vertical 10 0 - if-valid 200 diff --git a/data/ui/crossfeed.ui b/data/ui/crossfeed.ui index 05c3f953e..a2757806c 100644 --- a/data/ui/crossfeed.ui +++ b/data/ui/crossfeed.ui @@ -59,7 +59,6 @@ center 10 0 - if-valid 300 @@ -82,7 +81,6 @@ center 10 1 - if-valid 1 diff --git a/data/ui/deepfilternet.ui b/data/ui/deepfilternet.ui index 1cb2cd4e1..3616fb57c 100644 --- a/data/ui/deepfilternet.ui +++ b/data/ui/deepfilternet.ui @@ -73,7 +73,6 @@ 1 - if-valid Minimum Processing Threshold @@ -100,7 +99,6 @@ 1 - if-valid Maximum ERB Processing Threshold @@ -127,7 +125,6 @@ 1 - if-valid Maximum DF Processing Threshold @@ -153,7 +150,6 @@ 1 - if-valid Minimum Processing Buffer @@ -180,7 +176,6 @@ 0.01 - if-valid Post Filter Beta @@ -416,4 +411,4 @@ - \ No newline at end of file + diff --git a/data/ui/deesser.ui b/data/ui/deesser.ui index ddab3af18..18dac577d 100644 --- a/data/ui/deesser.ui +++ b/data/ui/deesser.ui @@ -102,7 +102,6 @@ center 10 0 - if-valid 10 @@ -135,7 +134,6 @@ center 10 0 - if-valid 10 @@ -177,7 +175,6 @@ vertical 10 1 - if-valid -24 @@ -212,7 +209,6 @@ vertical 10 1 - if-valid -24 @@ -247,7 +243,6 @@ vertical 10 1 - if-valid 0.1 @@ -282,7 +277,6 @@ vertical 10 0 - if-valid 1 @@ -317,7 +311,6 @@ vertical 10 1 - if-valid -60 @@ -351,7 +344,6 @@ vertical 10 0 - if-valid 1 @@ -386,7 +378,6 @@ vertical 10 1 - if-valid 36 diff --git a/data/ui/delay.ui b/data/ui/delay.ui index fbc6017d9..9748eeb58 100644 --- a/data/ui/delay.ui +++ b/data/ui/delay.ui @@ -45,7 +45,6 @@ center 10 2 - if-valid 1000 @@ -67,7 +66,6 @@ center 10 1 - if-valid -100 @@ -91,7 +89,6 @@ center 10 1 - if-valid -100 @@ -135,7 +132,6 @@ center 10 2 - if-valid 1000 @@ -157,7 +153,6 @@ center 10 1 - if-valid -100 @@ -181,7 +176,6 @@ center 10 1 - if-valid -100 diff --git a/data/ui/echo_canceller.ui b/data/ui/echo_canceller.ui index c57d0a414..af6d4a859 100644 --- a/data/ui/echo_canceller.ui +++ b/data/ui/echo_canceller.ui @@ -30,7 +30,6 @@ center 10 0 - if-valid 1 @@ -53,7 +52,6 @@ center 10 0 - if-valid -100 @@ -75,7 +73,6 @@ center 10 0 - if-valid -100 diff --git a/data/ui/equalizer.ui b/data/ui/equalizer.ui index 436d2342f..e8ac5e6ab 100644 --- a/data/ui/equalizer.ui +++ b/data/ui/equalizer.ui @@ -37,7 +37,6 @@ center 0 - if-valid 1 @@ -103,7 +102,6 @@ center 11 1 - if-valid -100 @@ -136,7 +134,6 @@ center 11 2 - if-valid -120 @@ -169,7 +166,6 @@ center 11 2 - if-valid -120 diff --git a/data/ui/equalizer_band.ui b/data/ui/equalizer_band.ui index 02c850294..f824e1016 100644 --- a/data/ui/equalizer_band.ui +++ b/data/ui/equalizer_band.ui @@ -196,7 +196,6 @@ center 0 - if-valid 10 @@ -228,7 +227,6 @@ center 2 - if-valid 10 @@ -264,7 +262,6 @@ center 2 - if-valid 10 @@ -295,7 +292,6 @@ center 2 - if-valid 10 diff --git a/data/ui/exciter.ui b/data/ui/exciter.ui index 2ee2da8d2..f834b45e0 100644 --- a/data/ui/exciter.ui +++ b/data/ui/exciter.ui @@ -126,7 +126,6 @@ 1 - if-valid 0 1 @@ -161,7 +160,6 @@ 1 - if-valid 1 1 @@ -195,7 +193,6 @@ 100 - if-valid 2 1 @@ -231,7 +228,6 @@ 100 - if-valid 3 1 @@ -499,4 +495,4 @@ - \ No newline at end of file + diff --git a/data/ui/expander.ui b/data/ui/expander.ui index 6e5531ed2..051d1bd7a 100644 --- a/data/ui/expander.ui +++ b/data/ui/expander.ui @@ -130,7 +130,6 @@ center 2 10 - if-valid 2000 @@ -152,7 +151,6 @@ center 1 - if-valid -60 @@ -185,7 +183,6 @@ center 6 2 - if-valid 5000 @@ -209,7 +206,6 @@ 6 1 10 - if-valid -100 @@ -244,7 +240,6 @@ vertical 10 2 - if-valid 1 @@ -280,7 +275,6 @@ vertical 10 1 - if-valid -24 @@ -315,7 +309,6 @@ vertical 10 1 - if-valid -60 @@ -350,7 +343,6 @@ vertical 10 1 - if-valid -100 @@ -385,7 +377,6 @@ vertical 10 1 - if-valid -100 @@ -675,7 +666,6 @@ vertical 10 1 - if-valid -120 @@ -712,7 +702,6 @@ vertical 10 2 - if-valid 250 @@ -749,7 +738,6 @@ vertical 10 2 - if-valid 20 @@ -851,7 +839,6 @@ 6 0 10 - if-valid 10 @@ -911,7 +898,6 @@ 6 0 10 - if-valid 10 diff --git a/data/ui/filter.ui b/data/ui/filter.ui index 282385e8c..876b5af18 100644 --- a/data/ui/filter.ui +++ b/data/ui/filter.ui @@ -170,7 +170,6 @@ center 10 0 - if-valid 10 @@ -197,7 +196,6 @@ center 10 0 - if-valid 0 @@ -224,7 +222,6 @@ center 10 2 - if-valid -36 @@ -251,7 +248,6 @@ center 10 2 - if-valid 0 @@ -278,7 +274,6 @@ center 10 1 - if-valid -100 diff --git a/data/ui/gate.ui b/data/ui/gate.ui index b19251238..675845908 100644 --- a/data/ui/gate.ui +++ b/data/ui/gate.ui @@ -96,7 +96,6 @@ vertical 2 11 - if-valid 2000 @@ -116,7 +115,6 @@ vertical 2 11 - if-valid 5000 @@ -189,7 +187,6 @@ vertical 1 10 - if-valid -60 @@ -209,7 +206,6 @@ vertical 1 10 - if-valid -60 @@ -282,7 +278,6 @@ vertical 1 10 - if-valid @@ -303,7 +298,6 @@ vertical 1 10 - if-valid @@ -378,7 +372,6 @@ vertical 10 1 - if-valid -100 @@ -399,7 +392,6 @@ vertical 10 1 - if-valid -100 @@ -458,7 +450,6 @@ vertical 10 1 - if-valid -72 @@ -478,7 +469,6 @@ vertical 10 1 - if-valid -60 @@ -889,7 +879,6 @@ vertical 10 1 - if-valid -120 @@ -926,7 +915,6 @@ vertical 10 2 - if-valid 250 @@ -963,7 +951,6 @@ vertical 10 2 - if-valid 20 @@ -1065,7 +1052,6 @@ 6 0 10 - if-valid 10 @@ -1125,7 +1111,6 @@ 6 0 10 - if-valid 10 diff --git a/data/ui/limiter.ui b/data/ui/limiter.ui index f2778d0cc..d5e2b3a17 100644 --- a/data/ui/limiter.ui +++ b/data/ui/limiter.ui @@ -213,7 +213,6 @@ vertical 10 1 - if-valid -120 @@ -254,7 +253,6 @@ vertical 10 2 - if-valid 0.1 @@ -296,7 +294,6 @@ vertical 10 2 - if-valid 0.25 @@ -338,7 +335,6 @@ vertical 10 2 - if-valid 0.25 @@ -380,7 +376,6 @@ vertical 10 2 - if-valid -48 @@ -432,7 +427,6 @@ vertical 10 2 - if-valid 0 @@ -518,7 +512,6 @@ vertical 10 2 - if-valid @@ -554,7 +547,6 @@ vertical 11 2 - if-valid @@ -590,7 +582,6 @@ vertical 10 1 - if-valid @@ -955,4 +946,4 @@ - \ No newline at end of file + diff --git a/data/ui/loudness.ui b/data/ui/loudness.ui index 673731d6d..2a232cdfc 100644 --- a/data/ui/loudness.ui +++ b/data/ui/loudness.ui @@ -85,7 +85,6 @@ center 10 1 - if-valid -83 @@ -113,7 +112,6 @@ center 10 1 - if-valid 0 @@ -355,4 +353,4 @@ - \ No newline at end of file + diff --git a/data/ui/maximizer.ui b/data/ui/maximizer.ui index 7292fa4d4..a7f333efa 100644 --- a/data/ui/maximizer.ui +++ b/data/ui/maximizer.ui @@ -30,7 +30,6 @@ center 10 2 - if-valid 1 @@ -53,7 +52,6 @@ center 10 1 - if-valid -30 @@ -74,7 +72,6 @@ center 10 1 - if-valid -30 diff --git a/data/ui/multiband_compressor.ui b/data/ui/multiband_compressor.ui index 514127c41..d446027f7 100644 --- a/data/ui/multiband_compressor.ui +++ b/data/ui/multiband_compressor.ui @@ -183,7 +183,6 @@ center 10 1 - if-valid -100 @@ -217,7 +216,6 @@ center 10 1 - if-valid -100 diff --git a/data/ui/multiband_compressor_band.ui b/data/ui/multiband_compressor_band.ui index 9a9cce1d4..e0e491c5f 100644 --- a/data/ui/multiband_compressor_band.ui +++ b/data/ui/multiband_compressor_band.ui @@ -34,7 +34,6 @@ 0 10 - if-valid 10 @@ -209,7 +208,6 @@ 6 2 10 - if-valid 2000 @@ -234,7 +232,6 @@ center 1 10 - if-valid -60 @@ -261,7 +258,6 @@ 12 2 10 - if-valid 2000 @@ -288,7 +284,6 @@ 12 1 10 - if-valid -100 @@ -325,7 +320,6 @@ vertical 10 2 - if-valid 1 @@ -363,7 +357,6 @@ vertical 10 1 - if-valid -24 @@ -401,7 +394,6 @@ vertical 10 1 - if-valid -60 @@ -600,7 +592,6 @@ center 0 10 - if-valid 10 @@ -639,7 +630,6 @@ 6 0 10 - if-valid 10 @@ -686,7 +676,6 @@ vertical 10 1 - if-valid -120 @@ -720,7 +709,6 @@ vertical 10 2 - if-valid 250 @@ -754,7 +742,6 @@ vertical 10 2 - if-valid 20 @@ -787,7 +774,6 @@ vertical 10 1 - if-valid @@ -831,7 +817,6 @@ vertical 10 1 - if-valid diff --git a/data/ui/multiband_gate.ui b/data/ui/multiband_gate.ui index 1cf13a5a3..44c484df8 100644 --- a/data/ui/multiband_gate.ui +++ b/data/ui/multiband_gate.ui @@ -183,7 +183,6 @@ center 10 1 - if-valid -100 @@ -217,7 +216,6 @@ center 10 1 - if-valid -100 diff --git a/data/ui/multiband_gate_band.ui b/data/ui/multiband_gate_band.ui index 076e67fca..7a72f6ea8 100644 --- a/data/ui/multiband_gate_band.ui +++ b/data/ui/multiband_gate_band.ui @@ -34,7 +34,6 @@ 0 10 - if-valid 10 @@ -170,7 +169,6 @@ vertical 2 11 - if-valid 2000 @@ -190,7 +188,6 @@ vertical 2 11 - if-valid 5000 @@ -263,7 +260,6 @@ vertical 1 10 - if-valid -60 @@ -283,7 +279,6 @@ vertical 1 10 - if-valid -60 @@ -356,7 +351,6 @@ vertical 1 10 - if-valid @@ -377,7 +371,6 @@ vertical 1 10 - if-valid @@ -438,7 +431,6 @@ vertical 10 1 - if-valid -72 @@ -458,7 +450,6 @@ vertical 10 1 - if-valid -60 @@ -659,7 +650,6 @@ center 0 10 - if-valid 10 @@ -698,7 +688,6 @@ 6 0 10 - if-valid 10 @@ -744,7 +733,6 @@ center 10 1 - if-valid -120 @@ -777,7 +765,6 @@ center 10 2 - if-valid 250 @@ -810,7 +797,6 @@ center 10 2 - if-valid 20 diff --git a/data/ui/pipe_manager_box.ui b/data/ui/pipe_manager_box.ui index 87bd352d2..f66a85668 100644 --- a/data/ui/pipe_manager_box.ui +++ b/data/ui/pipe_manager_box.ui @@ -640,7 +640,6 @@ 0 - if-valid 10 diff --git a/data/ui/pitch.ui b/data/ui/pitch.ui index 1adf8d306..bc8099cd9 100644 --- a/data/ui/pitch.ui +++ b/data/ui/pitch.ui @@ -62,7 +62,6 @@ center 10 0 - if-valid 0 @@ -85,7 +84,6 @@ center 10 0 - if-valid 0 @@ -108,7 +106,6 @@ center 10 0 - if-valid 0 @@ -141,7 +138,6 @@ center 10 2 - if-valid -12 @@ -164,7 +160,6 @@ center 10 0 - if-valid -50 @@ -187,7 +182,6 @@ center 10 0 - if-valid -50 @@ -430,4 +424,4 @@ - \ No newline at end of file + diff --git a/data/ui/preferences_general.ui b/data/ui/preferences_general.ui index d9139064b..690d70b8b 100644 --- a/data/ui/preferences_general.ui +++ b/data/ui/preferences_general.ui @@ -100,7 +100,6 @@ center 7 0 - if-valid @@ -125,7 +124,6 @@ center 7 0 - if-valid 1 @@ -149,7 +147,6 @@ center 7 0 - if-valid 1 diff --git a/data/ui/preferences_spectrum.ui b/data/ui/preferences_spectrum.ui index 68dc7173f..97535d518 100644 --- a/data/ui/preferences_spectrum.ui +++ b/data/ui/preferences_spectrum.ui @@ -53,7 +53,6 @@ center 0 - if-valid 2 @@ -75,7 +74,6 @@ center 0 - if-valid 1 @@ -97,7 +95,6 @@ center - if-valid 1 @@ -215,7 +212,6 @@ center 10 - if-valid 20 @@ -238,7 +234,6 @@ center 10 - if-valid 20 @@ -266,4 +261,4 @@ - \ No newline at end of file + diff --git a/data/ui/reverb.ui b/data/ui/reverb.ui index 8e74e3ab4..b1b945434 100644 --- a/data/ui/reverb.ui +++ b/data/ui/reverb.ui @@ -46,7 +46,6 @@ 10 0 - if-valid 2000 @@ -113,7 +112,6 @@ center 10 2 - if-valid 1 @@ -154,7 +152,6 @@ vertical 10 2 - if-valid 500 @@ -187,7 +184,6 @@ vertical 10 2 - if-valid 0.4 @@ -222,7 +218,6 @@ vertical 10 1 - if-valid -100 @@ -256,7 +251,6 @@ vertical 10 1 - if-valid -100 @@ -291,7 +285,6 @@ vertical 10 0 - if-valid 20 @@ -326,7 +319,6 @@ vertical 10 0 - if-valid 20 diff --git a/data/ui/rnnoise.ui b/data/ui/rnnoise.ui index de2fd7a65..4341386f4 100644 --- a/data/ui/rnnoise.ui +++ b/data/ui/rnnoise.ui @@ -69,7 +69,6 @@ center 10 0 - if-valid 0 @@ -96,7 +95,6 @@ center 10 2 - if-valid -100 @@ -123,7 +121,6 @@ center 10 2 - if-valid 0 diff --git a/data/ui/speex.ui b/data/ui/speex.ui index c62cc1c6c..09ba7fcad 100644 --- a/data/ui/speex.ui +++ b/data/ui/speex.ui @@ -99,7 +99,6 @@ center 10 0 - if-valid 0 @@ -122,7 +121,6 @@ center 10 0 - if-valid 0 @@ -152,7 +150,6 @@ center 10 1 - if-valid -100 diff --git a/data/ui/stereo_tools.ui b/data/ui/stereo_tools.ui index c8ab47dba..65bef05c0 100644 --- a/data/ui/stereo_tools.ui +++ b/data/ui/stereo_tools.ui @@ -62,7 +62,6 @@ vertical 10 2 - if-valid -1 @@ -98,7 +97,6 @@ vertical 10 2 - if-valid 1 @@ -246,7 +244,6 @@ vertical 10 1 - if-valid -36 @@ -282,7 +279,6 @@ vertical 10 2 - if-valid -1 @@ -318,7 +314,6 @@ vertical 10 1 - if-valid -36 @@ -354,7 +349,6 @@ vertical 10 2 - if-valid -1 @@ -407,7 +401,6 @@ vertical 10 2 - if-valid -1 @@ -443,7 +436,6 @@ vertical 10 2 - if-valid -20 @@ -479,7 +471,6 @@ vertical 10 2 - if-valid -1 @@ -515,7 +506,6 @@ vertical 10 2 - if-valid 360 @@ -548,7 +538,6 @@ vertical 10 1 - if-valid -100 @@ -584,7 +573,6 @@ vertical 10 1 - if-valid -100 From b1f11bb882cbe9b2a707a659bcd0e5953210daca Mon Sep 17 00:00:00 2001 From: Digitalone1 Date: Thu, 4 Apr 2024 14:49:39 +0200 Subject: [PATCH 3/6] preset name: perform a more robust text sanitizer --- data/ui/presets_menu.ui | 3 ++- include/util.hpp | 1 + src/presets_manager.cpp | 2 ++ src/presets_menu.cpp | 25 +++++++++++++++++++------ src/util.cpp | 5 +++++ 5 files changed, 29 insertions(+), 7 deletions(-) diff --git a/data/ui/presets_menu.ui b/data/ui/presets_menu.ui index bc0a4fece..85943d2ae 100644 --- a/data/ui/presets_menu.ui +++ b/data/ui/presets_menu.ui @@ -42,6 +42,7 @@ 1 Name name + 1 text-box New Preset Name @@ -292,4 +293,4 @@ - \ No newline at end of file + diff --git a/include/util.hpp b/include/util.hpp index bf34165cb..6d6e9e607 100644 --- a/include/util.hpp +++ b/include/util.hpp @@ -114,6 +114,7 @@ auto compare_versions(const std::string& v0, const std::string& v1) -> int; void str_trim_start(std::string& str); void str_trim_end(std::string& str); +void str_trim(std::string& str); template void print_type(T v) { diff --git a/src/presets_manager.cpp b/src/presets_manager.cpp index 46bf1ba60..eac5f2821 100644 --- a/src/presets_manager.cpp +++ b/src/presets_manager.cpp @@ -273,6 +273,8 @@ auto PresetsManager::search_names(std::filesystem::directory_iterator& it) -> st } void PresetsManager::add(const PresetType& preset_type, const std::string& name) { + // This method assumes the filename is valid. + for (const auto& p : get_local_presets_name(preset_type)) { if (p == name) { return; diff --git a/src/presets_menu.cpp b/src/presets_menu.cpp index 30714cdd2..381522a18 100644 --- a/src/presets_menu.cpp +++ b/src/presets_menu.cpp @@ -102,18 +102,31 @@ auto closure_community_search_filter(PresetsMenu* self, const char* text) -> con void create_preset(PresetsMenu* self, GtkButton* button) { auto name = std::string(g_utf8_make_valid(gtk_editable_get_text(GTK_EDITABLE(self->new_preset_name)), -1)); + // Reset input field. + gtk_editable_set_text(GTK_EDITABLE(self->new_preset_name), ""); + + // Remove leading and trailing whitespaces. + util::str_trim(name); + + static const auto json_ext_re = std::regex(R"(\.json)", std::regex::icase); + + // Remove the json extension, if present + // (it will be added in PresetsManager::add()). + if (std::smatch sm; std::regex_search(name, sm, json_ext_re)) { + name.resize(name.size() - 5U); + } + + // Check if empty. if (name.empty()) { return; } - gtk_editable_set_text(GTK_EDITABLE(self->new_preset_name), ""); - - // Truncate if longer than 100 characters - - if (name.size() > 100U) { - name.resize(100U); + // Truncate if the name is longer than 100 characters. + if (const auto max_length = 100U; name.size() > max_length) { + name.resize(max_length); } + // Check for illegal characters. if (name.find_first_of("\\/") != std::string::npos) { util::debug(" name " + name + " has illegal file name characters. Aborting preset creation!"); diff --git a/src/util.cpp b/src/util.cpp index 027d934f9..a8f462511 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -414,6 +414,11 @@ void str_trim_end(std::string& str) { // Same as above, but at the end of the given string. str.erase(str.find_last_not_of(" \n\r\t\v\f") + 1U); } +void str_trim(std::string& str) { + // Trim both sides of the given string. See above. + str_trim_end(str); + str_trim_start(str); +} auto compare_versions(const std::string& v0, const std::string& v1) -> int { /* This is an util to compare two strings as semver, mainly used to compare From 3c856e8e7315bae83ca19b18b6927fec5adfdefd Mon Sep 17 00:00:00 2001 From: Digitalone1 Date: Thu, 4 Apr 2024 15:06:57 +0200 Subject: [PATCH 4/6] avoid implicit conversion to string_view --- src/presets_manager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/presets_manager.cpp b/src/presets_manager.cpp index eac5f2821..18b5aef51 100644 --- a/src/presets_manager.cpp +++ b/src/presets_manager.cpp @@ -389,7 +389,8 @@ auto PresetsManager::get_community_preset_info(const PresetType& preset_type, co } // Check if the preset is contained in the selected system data directory. - if (!path.starts_with(cp_dir)) { + // starts_with gets a string_view, so we use the version with character array. + if (!path.starts_with(cp_dir.c_str())) { continue; } From 69a0c785223d2bb5091838275b7511b42627bbd7 Mon Sep 17 00:00:00 2001 From: Digitalone1 Date: Thu, 4 Apr 2024 15:11:33 +0200 Subject: [PATCH 5/6] parse_spinbutton_input: use gdouble --- include/ui_helpers.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/ui_helpers.hpp b/include/ui_helpers.hpp index 37aa6ca85..18b6917cf 100644 --- a/include/ui_helpers.hpp +++ b/include/ui_helpers.hpp @@ -63,7 +63,7 @@ void show_simple_message_dialog(GtkWidget* parent, const std::string& title, con auto parse_spinbutton_output(GtkSpinButton* button, const char* unit, const bool& lower_bound = true) -> gboolean; -auto parse_spinbutton_input(GtkSpinButton* button, double* new_value, const bool& lower_bound = true) -> gint; +auto parse_spinbutton_input(GtkSpinButton* button, gdouble* new_value, const bool& lower_bound = true) -> gint; auto get_new_filter_serial() -> uint; From 4594bee1d9cc1c90f4ac6a2defd0df84c6613fd4 Mon Sep 17 00:00:00 2001 From: Digitalone1 Date: Thu, 4 Apr 2024 15:24:50 +0200 Subject: [PATCH 6/6] update NEWS --- util/NEWS.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/util/NEWS.yaml b/util/NEWS.yaml index ecaa2380f..1ca131b69 100644 --- a/util/NEWS.yaml +++ b/util/NEWS.yaml @@ -2,15 +2,15 @@ Version: UNRELEASED_VERSION Date: UNRELEASED_DATE -Description: +Description: - Features∶ -- +- Community Presets have been implemented. Users can install packages containing multiple Easy Effects presets to be imported and applied inside the application. These packages will be maintained and shipped by volunteers. You can search them on Flathub or the repositories of your favorite distribution. - Bug fixes∶ -- +- A change in GTK 4.14.1 prevented to apply the values inserted into the text field of our SpinButton widgets. This issue is now resolved. - Other notes∶ -- +- In order for Community Presets to be correctly shipped, packagers are invited to read and follow the guidelines linked inside the README of EasyEffects master branch. --- Version: 7.1.6