55from PyQt6 .QtGui import QPixmap , QRegularExpressionValidator
66from PyQt6 .QtCore import QRegularExpression
77
8- from src .config .app_state import AppState
8+ from src .config .app_state import AppState , ApplicationStatusEnum
99from src .dialogs .dialog_check_map import CheckMapDialog
1010from src .config .config_manager import ConfigManager
1111
@@ -87,8 +87,13 @@ def __init__(self, parent=None):
8787 self .new_mapper_line_edit .setMaxLength (128 ) # limit number of characters
8888
8989 def startRuleGeneration (self ):
90- rule_name = self .new_mapper_line_edit .text ()
91- if not AppState .imagePath () or not len (rule_name ):
90+ if self .radio_buttons [0 ].isChecked ():
91+ rule_name = self .new_mapper_line_edit .text ()
92+ else :
93+ rule_name = self .existing_mapper_combobox .currentText ()
94+
95+ if not AppState .imagePath () or not rule_name or not len (rule_name ):
96+ AppState .setStatus (ApplicationStatusEnum .WARNING , "You can't generate without a rule name" )
9297 return
9398 cmd = CheckMapDialog (self , title = f"Do you want to save your mapping rule '{ rule_name } '?" , cancel = True )
9499 ret = cmd .exec ()
@@ -102,11 +107,20 @@ def checkMappingRules(self):
102107 cmd .exec ()
103108
104109 def mappingRuleNameChanged (self ):
105- rule_name = self .new_mapper_line_edit .text ()
106- if not rule_name or len (rule_name ) == 0 :
107- self .generate_button .setDisabled (True )
110+ self ._updateGenerateButton ()
111+
112+ def _updateGenerateButton (self ):
113+ if self .radio_buttons [0 ].isChecked ():
114+ rule_name = self .new_mapper_line_edit .text ()
115+ if not rule_name or len (rule_name ) == 0 :
116+ self .generate_button .setDisabled (True )
117+ else :
118+ self .generate_button .setEnabled (True )
108119 else :
109- self .generate_button .setEnabled (True )
120+ if not self .existing_mapper_combobox .count ():
121+ self .generate_button .setDisabled (True )
122+ else :
123+ self .generate_button .setEnabled (True )
110124
111125 def ruleNameToggle (self ):
112126 if self .radio_buttons [0 ].isChecked ():
@@ -115,6 +129,7 @@ def ruleNameToggle(self):
115129 elif self .radio_buttons [1 ].isChecked ():
116130 self .new_mapper .hide ()
117131 self .existing_mapper .show ()
132+ self ._updateGenerateButton ()
118133
119134 def startDDNetCheck (self ):
120135 # TODO
@@ -137,5 +152,12 @@ def rulesLoaded(self):
137152 self .radio_buttons [1 ].setEnabled (True )
138153 else : # disable combo box
139154 if self .radio_buttons [1 ].isChecked ():
140- self .ruleNameToggle () # only new is available
155+ self .radio_buttons [ 0 ]. click ()
141156 self .radio_buttons [1 ].setDisabled (True )
157+ self ._updateGenerateButton ()
158+
159+ def reset (self ):
160+ if self .radio_buttons [1 ].isChecked ():
161+ self .ruleNameToggle ()
162+ self .new_mapper_line_edit .setText ("" )
163+ self .existing_mapper_combobox .clear ()
0 commit comments