def _save_open_route(self, file_path): prev_route = config.get("route", "path") config.set_key("route", "path", file_path) config.save_config() success = self.open_route() if success: return else: config.set_key("route", "path", prev_route) config.save_config() self.open_route()
def update_config(self): try: with open(resource_utils.resource_path( self.CONFIG_UPDATE_FILE)) as file: config_update = json.load(file) except (FileNotFoundError, PermissionError): return try: for update in config_update["Update"]: config.set_key(update[0], update[1], config.get_default(update[0], update[1])) config.save_config() except: pass
def apply_clicked(self): try: os.remove(ResetGeneratorDialog.TEMPLATE_DIR + "generated_reset_one.jpg") except FileNotFoundError: pass try: os.remove(ResetGeneratorDialog.TEMPLATE_DIR + "generated_reset_two.jpg") except FileNotFoundError: pass try: os.rename( ResetGeneratorDialog.TEMPLATE_DIR + "generated_temp_" + str(self.gen_1_sb.value()) + ".jpg", ResetGeneratorDialog.TEMPLATE_DIR + "generated_reset_one.jpg") except FileNotFoundError: pass try: os.rename( ResetGeneratorDialog.TEMPLATE_DIR + "generated_temp_" + str(self.gen_2_sb.value()) + ".jpg", ResetGeneratorDialog.TEMPLATE_DIR + "generated_reset_two.jpg") except FileNotFoundError: pass for i in range(ResetGenerator.CAPTURE_COUNT + 1): try: os.remove(ResetGeneratorDialog.TEMPLATE_DIR + "generated_temp_" + str(i) + ".jpg") except FileNotFoundError: pass config.set_key( "advanced", "reset_frame_one", ResetGeneratorDialog.TEMPLATE_DIR + "generated_reset_one.jpg") config.set_key( "advanced", "reset_frame_two", ResetGeneratorDialog.TEMPLATE_DIR + "generated_reset_two.jpg") config.save_config() self._reset_generator.stop() self.hide()
def open_route(self): self._reset() if config.get("route", "path") == "": return #try: route = route_loader.load(config.get("route", "path")) # except KeyError: # self.display_error_message("Key Error", "Route Error") # return False if not route: self.display_error_message("Could not load route", "Route Error") self._load_route_dir() config.set_key("route", "path", "") config.save_config() return False error = route_loader.validate_route(route) if error: self.display_error_message(error, "Route Error") return False self.route = route self.split_list.clear() self.star_count.star_count = route.initial_star self.star_count.split_star = route.splits[0].star_count for split in route.splits: split_icon_path = split.icon_path if split_icon_path: split_icon_path = rel_to_abs(split_icon_path) icon = QtGui.QPixmap(split_icon_path) else: icon = None self.split_list.add_split(split.title, icon) self.split_list.repaint() return True
def apply_clicked(self): if not self._is_correct_ratio(): if self.display_warning("A non 4:3 game ratio was detected, you may experience sub-optimal performance."): return if not self._is_minimum_size(): if self.display_warning("Game width and height are below the recommended minimum (614, 448). You may experience sub-optimal performance."): return # Config config.set_key("game", "game_region", self.game_region_panel.get_data()) config.set_key("game", "process_name", self.process_combo.currentText()) try: config.set_key("game", "capture_size", capture_window.get_capture_size(self._process_list[self.process_combo.currentIndex()][1])) except: pass config.save_config() self.applied.emit() self.close()
def contextMenuEvent(self, event): context_menu = QtWidgets.QMenu(self) route_menu = QtWidgets.QMenu("Open Route") route_actions = {} category_menus = {} # SRL MODE Action srl_action = QtWidgets.QAction("SRL Mode", self, checkable=True) context_menu.addAction(srl_action) srl_action.setChecked(config.get("general", "srl_mode")) context_menu.addSeparator() for category in sorted( self._routes, key=lambda text: [int(c) if c.isdigit() else c for c in re.split(r'(\d+)', text)]): if len(self._routes[category]) == 1 or category == "": for route in self._routes[category]: route_menu.addAction(route[0]) route_actions[route[0]] = partial(self._save_open_route, route[1]) else: category_menus[category] = QtWidgets.QMenu(str(category)) route_menu.addMenu(category_menus[category]) for route in self._routes[category]: category_menus[category].addAction(route[0]) route_actions[route[0]] = partial(self._save_open_route, route[1]) route_menu.addSeparator() file_action = route_menu.addAction("From File") # Actions edit_route = context_menu.addAction("Edit Route") context_menu.addMenu(route_menu) context_menu.addSeparator() cords_action = context_menu.addAction("Edit Coordinates") context_menu.addSeparator() advanced_action = context_menu.addAction("Settings") context_menu.addSeparator() reset_gen_action = context_menu.addAction("Generate Reset Templates") context_menu.addSeparator() output_action = context_menu.addAction("Show Output") context_menu.addSeparator() on_top_action = QtWidgets.QAction("Always On Top", self, checkable=True) context_menu.addAction(on_top_action) on_top_action.setChecked(config.get("general", "on_top")) context_menu.addSeparator() about_action = context_menu.addAction("About") update_action = context_menu.addAction("Check for Updates..") context_menu.addSeparator() exit_action = context_menu.addAction("Exit") action = context_menu.exec_(self.mapToGlobal(event.pos())) # Connections if action == srl_action: checked = srl_action.isChecked() config.set_key("general", "srl_mode", checked) config.save_config() elif action == edit_route: self.dialogs["route_editor"].show() elif action == file_action: self.open_route_browser() elif action == cords_action: self.dialogs["capture_editor"].show() try: self.dialogs["output_dialog"].close() except AttributeError: pass elif action == advanced_action: self.dialogs["settings_dialog"].show() elif action == reset_gen_action: self.dialogs["reset_dialog"].show() elif action == output_action: self.dialogs["output_dialog"].show() elif action == on_top_action: checked = on_top_action.isChecked() config.set_key("general", "on_top", checked) config.save_config() self.set_always_on_top(config.get("general", "on_top")) elif action == about_action: self.dialogs["about_dialog"].show() elif action == update_action: self.check_update.emit() elif action == exit_action: self.close() else: try: route_actions[action.text()]() except (KeyError, AttributeError): pass