@@ -5,8 +5,7 @@ public class Turntable.Views.Window : Adw.ApplicationWindow {
55 GLib . SimpleAction component_progressbin_action;
66 GLib . SimpleAction component_extract_colors_action;
77 GLib . SimpleAction window_style_action;
8- GLib . SimpleAction client_icon_style_symbolic_action;
9- GLib . SimpleAction component_client_icon_action;
8+ GLib . SimpleAction client_icon_style_action;
109 GLib . SimpleAction component_cover_fit_action;
1110 GLib . SimpleAction meta_dim_action;
1211 GLib . SimpleAction text_size_action;
@@ -511,13 +510,9 @@ public class Turntable.Views.Window : Adw.ApplicationWindow {
511510 window_style_action. change_state. connect (on_change_window_style);
512511 this . add_action (window_style_action);
513512
514- client_icon_style_symbolic_action = new GLib .SimpleAction .stateful (" client-icon-style-symbolic" , GLib . VariantType . BOOLEAN , settings. client_icon_style_symbolic);
515- client_icon_style_symbolic_action. change_state. connect (on_change_client_icon_style);
516- this . add_action (client_icon_style_symbolic_action);
517-
518- component_client_icon_action = new GLib .SimpleAction .stateful (" component-client-icon" , null , settings. component_client_icon);
519- component_client_icon_action. change_state. connect (on_change_component_client_icon);
520- this . add_action (component_client_icon_action);
513+ client_icon_style_action = new GLib .SimpleAction .stateful (" client-icon-style" , GLib . VariantType . STRING , settings. client_icon_style);
514+ client_icon_style_action. change_state. connect (on_change_client_icon_style);
515+ this . add_action (client_icon_style_action);
521516
522517 component_tonearm_action = new GLib .SimpleAction .stateful (" component-tonearm" , null , settings. component_tonearm);
523518 component_tonearm_action. change_state. connect (on_change_component_tonearm);
@@ -551,8 +546,7 @@ public class Turntable.Views.Window : Adw.ApplicationWindow {
551546 settings. notify[" component-progressbin" ]. connect (update_progressbin_from_settings);
552547 settings. notify[" component-extract-colors" ]. connect (update_extract_colors_from_settings);
553548 settings. notify[" window-style" ]. connect (update_window_from_settings);
554- settings. notify[" client-icon-style-symbolic" ]. connect (update_client_icon_from_settings);
555- settings. notify[" component-client-icon" ]. connect (update_component_client_icon_from_settings);
549+ settings. notify[" client-icon-style" ]. connect (update_client_icon_style_from_settings);
556550 settings. notify[" component-tonearm" ]. connect (update_component_tonearm_from_settings);
557551 settings. notify[" component-center-text" ]. connect (update_component_center_text_from_settings);
558552 settings. notify[" component-more-controls" ]. connect (update_component_more_controls_from_settings);
@@ -652,8 +646,7 @@ public class Turntable.Views.Window : Adw.ApplicationWindow {
652646 update_progressbin_from_settings ();
653647 update_extract_colors_from_settings ();
654648 update_window_from_settings ();
655- update_client_icon_from_settings ();
656- update_component_client_icon_from_settings ();
649+ update_client_icon_style_from_settings ();
657650 update_component_tonearm_from_settings ();
658651 update_component_cover_fit_from_settings ();
659652 update_meta_dim_from_settings ();
@@ -695,11 +688,6 @@ public class Turntable.Views.Window : Adw.ApplicationWindow {
695688 window_style_action. set_state (this . window_style. to_string ());
696689 }
697690
698- private void update_client_icon_from_settings () {
699- this . prog. client_icon_style = settings. client_icon_style_symbolic ? Widgets . ProgressBin . ClientIconStyle . SYMBOLIC : Widgets . ProgressBin . ClientIconStyle . FULL_COLOR ;
700- client_icon_style_symbolic_action. set_state (settings. client_icon_style_symbolic);
701- }
702-
703691 private void update_meta_dim_from_settings () {
704692 if (settings. meta_dim) {
705693 if (! artist_label. has_css_class (" dim-label" )) artist_label. add_css_class (" dim-label" );
@@ -727,9 +715,23 @@ public class Turntable.Views.Window : Adw.ApplicationWindow {
727715 toggle_orientation_action. set_state (settings. orientation_horizontal);
728716 }
729717
730- private void update_component_client_icon_from_settings () {
731- this . prog. client_icon_enabled = settings. component_client_icon;
732- component_client_icon_action. set_state (settings. component_client_icon);
718+ private void update_client_icon_style_from_settings () {
719+ // TODO: deprecated, remove in next major
720+ Widgets . ProgressBin . ClientIconStyle cis;
721+ if (settings. client_icon_style == " unset" ) {
722+ if (settings. get_boolean (" component-client-icon" )) {
723+ cis = settings. get_boolean (" client-icon-style-symbolic" ) ? Widgets . ProgressBin . ClientIconStyle . SYMBOLIC : Widgets . ProgressBin . ClientIconStyle . FULL_COLOR ;
724+ } else {
725+ cis = NONE ;
726+ }
727+
728+ settings. client_icon_style = cis. to_string ();
729+ } else {
730+ cis = Widgets . ProgressBin . ClientIconStyle . from_string (settings. client_icon_style);
731+ }
732+
733+ this . prog. client_icon_style = cis;
734+ client_icon_style_action. set_state (cis. to_string ());
733735 }
734736
735737 private void update_component_tonearm_from_settings () {
@@ -904,13 +906,7 @@ public class Turntable.Views.Window : Adw.ApplicationWindow {
904906
905907 private void on_change_client_icon_style (GLib .SimpleAction action , GLib .Variant ? value ) {
906908 if (value == null ) return ;
907- settings. client_icon_style_symbolic = value . get_boolean ();
908- settings. component_client_icon = true ;
909- }
910-
911- private void on_change_component_client_icon (GLib .SimpleAction action , GLib .Variant ? value ) {
912- if (value == null ) return ;
913- settings. component_client_icon = value . get_boolean ();
909+ settings. client_icon_style = value . get_string ();
914910 }
915911
916912 private void on_change_component_tonearm (GLib .SimpleAction action , GLib .Variant ? value ) {
0 commit comments