def __init__(self, cmd_line_args=[]): super(WWRandomizerWindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.cmd_line_args = cmd_line_args self.bulk_test = ("-bulk" in cmd_line_args) self.custom_color_selector_buttons = OrderedDict() self.custom_color_selector_hex_inputs = OrderedDict() self.custom_colors = OrderedDict() self.initialize_custom_player_model_list() self.preserve_default_settings() self.cached_item_locations = Logic.load_and_parse_item_locations() self.load_settings() self.ui.clean_iso_path.editingFinished.connect(self.update_settings) self.ui.output_folder.editingFinished.connect(self.update_settings) self.ui.seed.editingFinished.connect(self.update_settings) self.ui.clean_iso_path_browse_button.clicked.connect(self.browse_for_clean_iso) self.ui.output_folder_browse_button.clicked.connect(self.browse_for_output_folder) self.ui.permalink.textEdited.connect(self.permalink_modified) self.ui.custom_player_model.currentIndexChanged.connect(self.custom_model_changed) self.ui.player_in_casual_clothes.clicked.connect(self.custom_model_changed) for option_name in OPTIONS: widget = getattr(self.ui, option_name) if isinstance(widget, QAbstractButton): widget.clicked.connect(self.update_settings) elif isinstance(widget, QComboBox): widget.currentIndexChanged.connect(self.update_settings) else: raise Exception("Option widget is invalid: %s" % option_name) self.ui.generate_seed_button.clicked.connect(self.generate_seed) self.ui.randomize_button.clicked.connect(self.randomize) self.ui.reset_settings_to_default.clicked.connect(self.reset_settings_to_default) self.ui.about_button.clicked.connect(self.open_about) for option_name in OPTIONS: getattr(self.ui, option_name).installEventFilter(self) label_for_option = getattr(self.ui, "label_for_" + option_name, None) if label_for_option: label_for_option.installEventFilter(self) self.set_option_description(None) self.update_settings() self.setWindowTitle("Wind Waker Randomizer %s" % VERSION) icon_path = os.path.join(ASSETS_PATH, "icon.ico") self.setWindowIcon(QIcon(icon_path)) self.show() self.update_checker_thread = UpdateCheckerThread() self.update_checker_thread.finished_checking_for_updates.connect(self.show_update_check_results) self.update_checker_thread.start()
def __init__(self, cmd_line_args=OrderedDict()): super(WWRandomizerWindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.cmd_line_args = cmd_line_args self.bulk_test = ("-bulk" in cmd_line_args) self.custom_color_selector_buttons = OrderedDict() self.custom_color_selector_hex_inputs = OrderedDict() self.custom_colors = OrderedDict() self.initialize_custom_player_model_list() self.ui.add_gear.clicked.connect(self.add_to_starting_gear) self.randomized_gear_model = QStringListModel() self.randomized_gear_model.setStringList(INVENTORY_ITEMS.copy()) self.filtered_rgear = ModelFilterOut() self.filtered_rgear.setSourceModel(self.randomized_gear_model) self.ui.randomized_gear.setModel(self.filtered_rgear) self.ui.remove_gear.clicked.connect(self.remove_from_starting_gear) self.starting_gear_model = QStringListModel() self.ui.starting_gear.setModel(self.starting_gear_model) self.preserve_default_settings() self.cached_item_locations = Logic.load_and_parse_item_locations() self.load_settings() self.ui.clean_iso_path.editingFinished.connect(self.update_settings) self.ui.output_folder.editingFinished.connect(self.update_settings) self.ui.seed.editingFinished.connect(self.update_settings) self.ui.clean_iso_path_browse_button.clicked.connect( self.browse_for_clean_iso) self.ui.output_folder_browse_button.clicked.connect( self.browse_for_output_folder) self.ui.permalink.textEdited.connect(self.permalink_modified) self.ui.custom_player_model.currentIndexChanged.connect( self.custom_model_changed) self.ui.player_in_casual_clothes.clicked.connect( self.custom_model_changed) for option_name in OPTIONS: widget = getattr(self.ui, option_name) if isinstance(widget, QAbstractButton): widget.clicked.connect(self.update_settings) elif isinstance(widget, QComboBox): widget.currentIndexChanged.connect(self.update_settings) elif isinstance(widget, QListView): pass else: raise Exception("Option widget is invalid: %s" % option_name) self.ui.generate_seed_button.clicked.connect(self.generate_seed) self.ui.randomize_button.clicked.connect(self.randomize) self.ui.reset_settings_to_default.clicked.connect( self.reset_settings_to_default) self.ui.about_button.clicked.connect(self.open_about) for option_name in OPTIONS: getattr(self.ui, option_name).installEventFilter(self) label_for_option = getattr(self.ui, "label_for_" + option_name, None) if label_for_option: label_for_option.installEventFilter(self) self.set_option_description(None) self.update_settings() self.setWindowTitle("Wind Waker Randomizer %s" % VERSION) icon_path = os.path.join(ASSETS_PATH, "icon.ico") self.setWindowIcon(QIcon(icon_path)) # Hide unfinished options from the GUI (still accessible via settings.txt). self.ui.randomize_bgm.hide() self.show() if not IS_RUNNING_FROM_SOURCE: self.update_checker_thread = UpdateCheckerThread() self.update_checker_thread.finished_checking_for_updates.connect( self.show_update_check_results) self.update_checker_thread.start() else: self.ui.update_checker_label.setText( "(Running from source, skipping release update check.)")