Пример #1
0
    def refresh_graphics_scene(self):
        """
        Clears the graphics scene and view, redraws all components including new screen capture
        :return:
        """

        # Remove all items that may be in the scene before clearing. Prevents program crash.
        self.graphics_scene.removeItem(self.game_region_selector)

        # Clear scene and update viewport
        self.graphics_scene.clear()
        self.graphics_view.update()

        # Update screen capture
        selected_hwnd = 0

        try:
            selected_hwnd = self._process_list[self.process_combo.currentIndex()][1]
        except IndexError:
            pass

        if selected_hwnd:
            try:
                preview_image = capture_window.capture(selected_hwnd)
                cv2.imwrite(resource_utils.resource_path(self.preview_image_path), preview_image)
            except:
                pass

        self.preview_pixmap.load(resource_utils.resource_path(self.preview_image_path))

        # Re-add all items to scene
        self.graphics_scene.addPixmap(self.preview_pixmap)
        self.graphics_scene.addItem(self.game_region_selector)
Пример #2
0
    def __init__(self):
        super().__init__()
        self.register_signal("RESET")
        self.register_signal("COMPLETE")

        self._fps = config.get("advanced", "fadeout_process_frame_rate")
        self._reset_threshold = config.get("thresholds", "reset_threshold")
        self._black_threshold = config.get("thresholds", "black_threshold")
        self._undo_threshold = config.get("thresholds", "undo_threshold")

        _, _, reset_width, reset_height = as64core.get_region_rect(as64core.RESET_REGION)
        self._reset_template = cv2.resize(cv2.imread(resource_path(config.get("advanced", "reset_frame_one"))),
                                          (reset_width, reset_height), interpolation=cv2.INTER_AREA)
        self._reset_template_2 = cv2.resize(cv2.imread(resource_path(config.get("advanced", "reset_frame_two"))),
                                            (reset_width, reset_height), interpolation=cv2.INTER_AREA)
Пример #3
0
 def load_local(self):
     try:
         with open(resource_utils.resource_path(
                 self.local_version_path)) as local:
             self.local_version = json.load(local)
     except FileNotFoundError:
         pass
Пример #4
0
    def initialize(self):
        # Configure window
        self.setWindowTitle(self.title)

        if config.get("general", "on_top"):
            self.setWindowFlags(QtCore.Qt.FramelessWindowHint
                                | QtCore.Qt.WindowStaysOnTopHint)
        else:
            self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

        self.setFixedSize(self.width, self.height)

        # Configure Central Widget
        self.central_widget.setObjectName("central_widget")

        self.central_widget.setStyleSheet(
            r"QWidget#central_widget{background-image: url(" +
            resource_path(constants.BACKGROUND_PATH) +
            "); background-attachment: fixed;}")
        self.setCentralWidget(self.central_widget)

        # Configure Other Widgets
        self.close_btn.move(340, 8)
        self.minimize_btn.move(320, 8)

        self.star_btn.move(250, 68)

        self.star_count.setFixedWidth(150)
        self.star_count.move(197, 115)
        self.star_count.setFont(self.start_count_font)
        self.star_count.star_count = "-"
        self.star_count.split_star = "-"

        self.start_btn.move(206, 200)
        self.start_btn.setFont(self.button_font)
        self.start_btn.setTextColour(QtGui.QColor(225, 227, 230))
        self.start_btn.add_state("start", self.start_pixmap, "Start")
        self.start_btn.add_state("stop", self.stop_pixmap, "Stop")
        self.start_btn.add_state("init", self.init_pixmap, "Initializing..")
        self.start_btn.set_state("start")

        self.split_list.setFont(self.button_font)
        self.split_list.setFixedSize(183, self.height)
        self.split_list.move(0, 0)

        self.open_route()

        # Connections
        self.close_btn.clicked.connect(self.close)
        self.minimize_btn.clicked.connect(self.showMinimized)
        self.start_btn.clicked.connect(self.start_clicked)
        self.star_btn.clicked.connect(self._reset)
        self.dialogs["route_editor"].route_updated.connect(
            self._on_route_update)
        self.dialogs["settings_dialog"].applied.connect(self.settings_updated)
        self.dialogs["capture_editor"].applied.connect(self._reset)
        self.dialogs["update_dialog"].ignore_btn.clicked.connect(
            lambda: self.ignore_update.emit())
        self.dialogs["update_dialog"].update_btn.clicked.connect(
            lambda: self.install_update.emit())
Пример #5
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
Пример #6
0
    def initialize_window(self):
        self.setFixedSize(self.width, self.height)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint
                            | QtCore.Qt.WindowStaysOnTopHint
                            | QtCore.Qt.SplashScreen)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
        self.setWindowTitle(self.title)

        # Configure Widgets
        self.background.setPixmap(
            QtGui.QPixmap(resource_utils.resource_path(ABOUT_PATH)))

        self.background.move(0, 0)
        self.ver_title_lb.move(260, 201)
        self.ver_lb.move(302, 201)
        self.author_title_lb.move(262, 221)
        self.author_lb.move(302, 221)
Пример #7
0
    def __init__(self, parent=None):
        QtWidgets.QDialog.__init__(self, parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowCloseButtonHint)

        self.window_title = "Game Capture Editor"
        self.setWindowIcon(QtGui.QIcon(resource_utils.resource_path(ICON_PATH)))

        # File Paths
        # TODO: ADD TO CONSTANTS
        self.preview_image_path = r'resources/game_preview.png'
        self.preview_not_found_image_path = r'resources/game_preview_not_found.png'

        # Layouts
        self.main_layout = QtWidgets.QHBoxLayout()
        self.left_layout = QtWidgets.QGridLayout()
        self.right_layout = QtWidgets.QGridLayout()

        # Primary Widgets
        self.left_widget = QtWidgets.QWidget(self)
        self.right_widget = QtWidgets.QWidget(self)

        # Right Panel Widgets
        self.game_region_panel = RectangleCapturePanel("Game Region")
        self.apply_btn = QtWidgets.QPushButton("Apply")
        self.cancel_btn = QtWidgets.QPushButton("Cancel")

        # Left Panel Widgets
        self.process_lb = QtWidgets.QLabel("Process:")
        self.process_combo = QtWidgets.QComboBox()
        self.capture_btn = QtWidgets.QPushButton("Capture")

        # Graphics View
        self.graphics_scene = CaptureGraphicsScene()
        self.graphics_view = QtWidgets.QGraphicsView(self.graphics_scene)

        # Graphics Scene Items
        self.game_region_selector = RectangleSelector(0, 0, 50, 50)

        self.preview_pixmap = QtGui.QPixmap()

        self.initialize()