From bbe9994bb15f31d2221eb9615f2fef29eb16fd7e Mon Sep 17 00:00:00 2001 From: Michael Alexsander Date: Wed, 14 May 2025 20:08:36 -0300 Subject: [PATCH] Hide scrollbar in the audio stream importer dialog when unneeded --- editor/import/audio_stream_import_settings.cpp | 11 +++++++++++ editor/import/audio_stream_import_settings.h | 1 + 2 files changed, 12 insertions(+) diff --git a/editor/import/audio_stream_import_settings.cpp b/editor/import/audio_stream_import_settings.cpp index 373cad126c3..baf05b8acbd 100644 --- a/editor/import/audio_stream_import_settings.cpp +++ b/editor/import/audio_stream_import_settings.cpp @@ -184,8 +184,10 @@ void AudioStreamImportSettingsDialog::_preview_zoom_in() { return; } float page_size = zoom_bar->get_page(); + zoom_spacer->hide(); zoom_bar->set_page(page_size * 0.5); zoom_bar->set_value(zoom_bar->get_value() + page_size * 0.25); + zoom_bar->show(); _preview->queue_redraw(); _indicator->queue_redraw(); @@ -198,6 +200,10 @@ void AudioStreamImportSettingsDialog::_preview_zoom_out() { float page_size = zoom_bar->get_page(); zoom_bar->set_page(MIN(zoom_bar->get_max(), page_size * 2.0)); zoom_bar->set_value(zoom_bar->get_value() - page_size * 0.5); + if (zoom_bar->get_value() == 0) { + zoom_bar->hide(); + zoom_spacer->show(); + } _preview->queue_redraw(); _indicator->queue_redraw(); @@ -210,6 +216,9 @@ void AudioStreamImportSettingsDialog::_preview_zoom_reset() { zoom_bar->set_max(stream->get_length()); zoom_bar->set_page(zoom_bar->get_max()); zoom_bar->set_value(0); + zoom_bar->hide(); + zoom_spacer->show(); + _preview->queue_redraw(); _indicator->queue_redraw(); } @@ -608,6 +617,7 @@ AudioStreamImportSettingsDialog::AudioStreamImportSettingsDialog() { HBoxContainer *zoom_hbox = memnew(HBoxContainer); zoom_bar = memnew(HScrollBar); + zoom_bar->hide(); zoom_in = memnew(Button); zoom_in->set_accessibility_name(TTRC("Zoom In")); zoom_in->set_flat(true); @@ -618,6 +628,7 @@ AudioStreamImportSettingsDialog::AudioStreamImportSettingsDialog() { zoom_out->set_accessibility_name(TTRC("Zoom Out")); zoom_out->set_flat(true); zoom_hbox->add_child(zoom_bar); + zoom_spacer = zoom_hbox->add_spacer(); zoom_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL); zoom_bar->set_v_size_flags(Control::SIZE_EXPAND_FILL); zoom_hbox->add_child(zoom_out); diff --git a/editor/import/audio_stream_import_settings.h b/editor/import/audio_stream_import_settings.h index 9d169b2c1a7..2e32cd100e2 100644 --- a/editor/import/audio_stream_import_settings.h +++ b/editor/import/audio_stream_import_settings.h @@ -59,6 +59,7 @@ class AudioStreamImportSettingsDialog : public ConfirmationDialog { Label *_duration_label = nullptr; HScrollBar *zoom_bar = nullptr; + Control *zoom_spacer = nullptr; Button *zoom_in = nullptr; Button *zoom_reset = nullptr; Button *zoom_out = nullptr;