Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
    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.)")