@@ -146,7 +146,8 @@ def __init__(
146146 dock_title_style = (
147147 "QDockWidget::title {"
148148 "text-align: center;"
149- "padding: 5px;"
149+ "border-radius: 4px;"
150+ "margin-bottom: 2px;"
150151 f"background-color: { AppTheme .get_color ('dock_title_bg' )} ;"
151152 f"color: { AppTheme .get_color ('dock_title_text' )} ;"
152153 "}"
@@ -665,50 +666,69 @@ def __init__(
665666 icon = "us" ,
666667 checkable = True ,
667668 checked = self ._config ["language" ] == "en_US" ,
668- enabled = self . _config [ "language" ] != "en_US" ,
669+ enabled = True , # Always enable all language options
669670 )
670671 select_lang_vi = create_action (
671672 "Tiếng Việt" ,
672673 functools .partial (self .set_language , "vi_VN" ),
673674 icon = "vn" ,
674675 checkable = True ,
675676 checked = self ._config ["language" ] == "vi_VN" ,
676- enabled = self . _config [ "language" ] != "vi_VN" ,
677+ enabled = True , # Always enable all language options
677678 )
678679 select_lang_zh = create_action (
679680 "中文" ,
680681 functools .partial (self .set_language , "zh_CN" ),
681682 icon = "cn" ,
682683 checkable = True ,
683684 checked = self ._config ["language" ] == "zh_CN" ,
684- enabled = self . _config [ "language" ] != "zh_CN" ,
685+ enabled = True , # Always enable all language options
685686 )
686687
688+ # Create action group for language actions to make them mutually exclusive
689+ lang_action_group = QtWidgets .QActionGroup (self )
690+ lang_action_group .setExclusive (True )
691+ lang_action_group .addAction (select_lang_en )
692+ lang_action_group .addAction (select_lang_vi )
693+ lang_action_group .addAction (select_lang_zh )
694+
695+ # Store language actions for later use
696+ lang_actions = (select_lang_en , select_lang_vi , select_lang_zh )
697+
687698 # Theme selector
699+ current_theme = self ._config .get ("theme" , "system" )
688700 select_theme_system = create_action (
689- "System" ,
701+ self . tr ( "System" ) ,
690702 functools .partial (self .set_theme , "system" ),
691703 icon = "computer" ,
692704 checkable = True ,
693- checked = self . _config . get ( "theme" , "system" ) == "system" ,
705+ checked = current_theme == "system" ,
694706 enabled = True ,
695707 )
696708 select_theme_light = create_action (
697- "Light" ,
709+ self . tr ( "Light" ) ,
698710 functools .partial (self .set_theme , "light" ),
699711 icon = "sun" ,
700712 checkable = True ,
701- checked = self . _config . get ( "theme" , "system" ) == "light" ,
713+ checked = current_theme == "light" ,
702714 enabled = True ,
703715 )
704716 select_theme_dark = create_action (
705- "Dark" ,
717+ self . tr ( "Dark" ) ,
706718 functools .partial (self .set_theme , "dark" ),
707719 icon = "moon" ,
708720 checkable = True ,
709- checked = self . _config . get ( "theme" , "system" ) == "dark" ,
721+ checked = current_theme == "dark" ,
710722 enabled = True ,
711723 )
724+
725+ # Create action group for theme actions to make them mutually exclusive
726+ theme_action_group = QtWidgets .QActionGroup (self )
727+ theme_action_group .setExclusive (True )
728+ theme_action_group .addAction (select_theme_system )
729+ theme_action_group .addAction (select_theme_light )
730+ theme_action_group .addAction (select_theme_dark )
731+
712732 # Store theme actions for later use
713733 theme_actions = (select_theme_system , select_theme_light , select_theme_dark )
714734
@@ -934,11 +954,7 @@ def __init__(
934954 )
935955 utils .add_actions (
936956 self .menus .language ,
937- (
938- select_lang_en ,
939- select_lang_vi ,
940- select_lang_zh ,
941- ),
957+ lang_actions ,
942958 )
943959 utils .add_actions (
944960 self .menus .theme ,
@@ -1066,7 +1082,8 @@ def __init__(
10661082 "text-align: center;"
10671083 "background-color: " + AppTheme .get_color ("dock_title_bg" ) + ";"
10681084 "color: " + AppTheme .get_color ("dock_title_text" ) + ";"
1069- "padding: 3px;"
1085+ "border-radius: 4px;"
1086+ "margin-bottom: 2px;"
10701087 "}"
10711088 )
10721089 self .tools_dock .setStyleSheet (tools_dock_style )
0 commit comments