From 89365b7e6157e777f1fbb923801bfd457978c243 Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Sun, 27 Oct 2019 01:09:41 -0500 Subject: [PATCH] qtui: make playlist tab visibility a tri-state ({shown, auto-hidden, hidden}). --- src/qtui/playlist_tabs.cc | 20 +++++++++++++++++++- src/qtui/settings.cc | 15 ++++++++++----- src/qtui/settings.h | 6 ++++++ 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/qtui/playlist_tabs.cc b/src/qtui/playlist_tabs.cc index 0fcc6683cf..47c2078900 100644 --- a/src/qtui/playlist_tabs.cc +++ b/src/qtui/playlist_tabs.cc @@ -21,6 +21,7 @@ #include "playlist_tabs.h" #include "menus.h" #include "search_bar.h" +#include "settings.h" #include #include @@ -349,7 +350,24 @@ void PlaylistTabBar::mouseDoubleClickEvent (QMouseEvent * e) void PlaylistTabBar::updateSettings () { #if QT_VERSION >= 0x050400 - setAutoHide (! aud_get_bool ("qtui", "playlist_tabs_visible")); + setAutoHide (false); #endif + + switch (aud_get_int ("qtui", "playlist_tabs_visible")) + { +#if QT_VERSION >= 0x050400 + case PlaylistTabVisibility::AutoHide: + setAutoHide (true); + break; +#endif + case PlaylistTabVisibility::Always: + show (); + break; + + case PlaylistTabVisibility::Never: + hide (); + break; + } + setTabsClosable (aud_get_bool ("qtui", "close_button_visible")); } diff --git a/src/qtui/settings.cc b/src/qtui/settings.cc index f3aece3ac4..eb7a482b18 100644 --- a/src/qtui/settings.cc +++ b/src/qtui/settings.cc @@ -30,7 +30,7 @@ const char * const qtui_defaults[] = { "infoarea_show_vis", "TRUE", "infoarea_visible", "TRUE", "menu_visible", "TRUE", - "playlist_tabs_visible", "TRUE", + "playlist_tabs_visible", aud::numeric_string::str, "statusbar_visible", "TRUE", "entry_count_visible", "FALSE", "close_button_visible", "TRUE", @@ -48,12 +48,17 @@ static void qtui_update_playlist_settings () hook_call ("qtui update playlist settings", nullptr); } +static const ComboItem playlist_tabs_options[] = { + ComboItem (N_("Always"), PlaylistTabVisibility::Always), + ComboItem (N_("Auto-hide"), PlaylistTabVisibility::AutoHide), + ComboItem (N_("Never"), PlaylistTabVisibility::Never) +}; + static const PreferencesWidget qtui_widgets[] = { WidgetLabel (N_("Playlist Tabs")), -#if QT_VERSION >= 0x050400 - WidgetCheck (N_("Always show tabs"), - WidgetBool ("qtui", "playlist_tabs_visible", qtui_update_playlist_settings)), -#endif + WidgetCombo (N_("Show playlist tabs:"), + WidgetInt ("qtui", "playlist_tabs_visible", qtui_update_playlist_settings), + {{playlist_tabs_options}}), WidgetCheck (N_("Show entry counts"), WidgetBool ("qtui", "entry_count_visible", qtui_update_playlist_settings)), WidgetCheck (N_("Show close buttons"), diff --git a/src/qtui/settings.h b/src/qtui/settings.h index 07d2b1df25..b05c3a0e67 100644 --- a/src/qtui/settings.h +++ b/src/qtui/settings.h @@ -24,6 +24,12 @@ #define DEFAULT_COLUMNS "playing title artist album queued length" +enum PlaylistTabVisibility { + Always, + AutoHide, + Never +}; + struct PluginPreferences; extern const PluginPreferences qtui_prefs;