Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
    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