예제 #1
0
    def __init__(self, parent=None):
        super().__init__(
            parent,
            QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowCloseButtonHint)
        self.window_title = "Reset Template Generator"
        self.setWindowIcon(QtGui.QIcon(resource_utils.base_path(ICON_PATH)))

        # Layouts
        self.menu_layout = QtWidgets.QGridLayout()
        self.button_layout = QtWidgets.QHBoxLayout()

        # Widgets
        self.apply_btn = QtWidgets.QPushButton("Apply")
        self.generate_btn = QtWidgets.QPushButton("Generate")
        self.cancel_btn = QtWidgets.QPushButton("Cancel")
        self.help_btn = QtWidgets.QPushButton("Help")

        self.gen_1_px = QtWidgets.QLabel()
        self.gen_2_px = QtWidgets.QLabel()
        self.def_1_px = QtWidgets.QLabel()
        self.def_2_px = QtWidgets.QLabel()

        self.gen_1_sb = QtWidgets.QSpinBox()
        self.gen_2_sb = QtWidgets.QSpinBox()

        self._reset_generator = None

        self.help_dialog = ResetGeneratorHelpDialog(self)

        self.initialize_window()
예제 #2
0
    def __init__(self, parent=None):
        super().__init__(
            parent,
            QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowCloseButtonHint)
        self.window_title = "About " + TITLE
        self.setWindowIcon(QtGui.QIcon(resource_utils.base_path(ICON_PATH)))

        # Layouts
        self.menu_layout = QtWidgets.QVBoxLayout()
        self.button_layout = QtWidgets.QHBoxLayout()

        # Widgets
        self.icon_lb = QtWidgets.QLabel()
        self.title_lb = QtWidgets.QLabel(TITLE)
        self.ver_title_lb = QtWidgets.QLabel("Version:")
        self.ver_lb = QtWidgets.QLabel(VERSION)
        self.author_title_lb = QtWidgets.QLabel("Author:")
        self.author_lb = QtWidgets.QLabel(AUTHOR)
        self.about_te = QtWidgets.QTextEdit()

        self.ok_btn = QtWidgets.QPushButton("Ok")

        # Font
        self.title_font = QtGui.QFont()
        self.title_font.setPointSize(16)

        self.initialize_window()
예제 #3
0
    def __init__(self, parent=None):
        super().__init__(
            parent,
            QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowCloseButtonHint)
        self.window_title = "Reset Template Generator Help"
        self.setWindowIcon(QtGui.QIcon(resource_utils.base_path(ICON_PATH)))

        # Layouts
        self.menu_layout = QtWidgets.QVBoxLayout()
        self.button_layout = QtWidgets.QHBoxLayout()

        # Widgets
        self.text_edit = QtWidgets.QTextEdit()
        self.text_edit.append(self.line1)
        self.text_edit.append("\n")
        self.text_edit.append(self.line2)
        self.text_edit.append("\n")
        self.text_edit.append(self.line3)

        self.ok_btn = QtWidgets.QPushButton("OK")

        # Font
        self.title_font = QtGui.QFont()
        self.title_font.setPointSize(16)

        self.initialize_window()
예제 #4
0
    def save_as(self):
        file_name, _ = QtWidgets.QFileDialog.getSaveFileName(
            self, "Save Route",
            resource_utils.base_path() + "/routes",
            "AS64 Route Files (*.as64)")

        if file_name != '':
            self.route_path = file_name
        else:
            return

        self.save()
예제 #5
0
    def __init__(self, parent=None):
        super().__init__(parent=parent)

        # Window Properties
        self.title = constants.TITLE
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
        self.width = 365
        self.height = 259
        self.setWindowIcon(QtGui.QIcon(base_path(constants.ICON_PATH)))

        # Dragging
        self._drag = False
        self._drag_position = None

        # Pixmaps
        self.start_pixmap = QtGui.QPixmap(base_path(constants.START_PATH))
        self.stop_pixmap = QtGui.QPixmap(base_path(constants.STOP_PATH))
        self.init_pixmap = QtGui.QPixmap(base_path(constants.INIT_PATH))

        # Widgets
        self.central_widget = QtWidgets.QWidget(self)
        self.star_count = StarCountDisplay(parent=self.central_widget)
        self.start_btn = StateButton(self.start_pixmap, self.start_pixmap, parent=self.central_widget)
        self.close_btn = PictureButton(QtGui.QPixmap(base_path(constants.CLOSE_PATH)), parent=self.central_widget)
        self.minimize_btn = PictureButton(QtGui.QPixmap(base_path(constants.MINIMIZE_PATH)), parent=self.central_widget)
        self.split_list = SplitListWidget(self.central_widget)

        # Font
        self.button_font = QtGui.QFont("Tw Cen MT", 14)
        self.start_count_font = QtGui.QFont("Tw Cen MT", 20)

        # Route
        self.route = None

        # Dialogs
        self.dialogs = {
            "about_dialog": AboutDialog(self),
            "capture_editor": CaptureEditor(self),
            "settings_dialog": SettingsDialog(self),
            "route_editor": RouteEditor(self),
            "reset_dialog": ResetGeneratorDialog(self)
        }

        self._routes = {}
        self._load_route_dir()

        self.initialize()
        self.show()
예제 #6
0
    def double_clicked(self, x, y):
        if y != 0:
            return

        file_name, _ = QtWidgets.QFileDialog.getOpenFileName(
            self, "Choose Icon",
            resource_utils.base_path("resources/split_icons"))

        if not file_name:
            return

        # Convert to relative path, if possible
        file_path = resource_utils.abs_to_rel(file_name)

        # Create Item
        item = QtWidgets.QTableWidgetItem()

        item.setIcon(QIcon(file_path))
        item.setToolTip(file_path)
        item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable)
        self.split_table.setItem(x, 0, item)
예제 #7
0
    def save(self):
        self.apply_btn.setFocus()

        splits = []

        if self.split_table.rowCount() < 1:
            self.display_error_message("No Splits", "Route Error")
            return -1

        for row in range(self.split_table.rowCount()):
            title = self.split_table.item(row, 1).text()
            if len(title) <= 0:
                self.display_error_message(
                    "Invalid Title - Row: " + str(row + 1), "Route Error")
                self.split_table.setCurrentCell(row, 1)
                return -1

            try:
                star_count = int(self.split_table.item(row, 2).text())
            except (ValueError, AttributeError):
                self.display_error_message(
                    "Invalid Star Count - Row: " + str(row + 1), "Route Error")
                self.split_table.setCurrentCell(row, 2)
                return -1

            try:
                fadeouts = int(self.split_table.item(row, 3).text())
            except (ValueError, AttributeError):
                if self.split_table.cellWidget(row,
                                               5).currentText == SPLIT_NORMAL:
                    self.display_error_message(
                        "Invalid Fadeout - Row: " + str(row + 1),
                        "Route Error")
                    self.split_table.setCurrentCell(row, 3)
                    return -1
                else:
                    fadeouts = -1

            try:
                fadeins = int(self.split_table.item(row, 4).text())
            except (ValueError, AttributeError):
                if self.split_table.cellWidget(row,
                                               5).currentText == SPLIT_NORMAL:
                    self.display_error_message(
                        "Invalid Fadein - Row: " + str(row + 1), "Route Error")
                    self.split_table.setCurrentCell(row, 4)
                    return -1
                else:
                    fadeins = -1

            try:
                icon_path = self.split_table.item(row, 0).toolTip()
            except (ValueError, AttributeError):
                icon_path = ""

            split_type = self.split_table.cellWidget(row, 5).currentText()

            splits.append(
                Split(title, star_count, fadeouts, fadeins, split_type,
                      icon_path))

        title = self.title_le.text()
        if len(title) <= 0:
            self.display_error_message("Invalid Route Title", "Route Error")
            return -1

        try:
            initial_star = int(self.init_star_le.text())
        except (ValueError, AttributeError):
            self.display_error_message("Invalid Initial Star", "Route Error")
            return -1

        category = self.category_combo.lineEdit().text()

        route = Route(
            self.route_path, title, splits, initial_star,
            self.version_combo.itemText(self.version_combo.currentIndex()),
            category)

        route_error = route_loader.validate_route(route)

        if route_error:
            self.display_error_message(route_error, "Route Error")
            return -1

        if not self.route_path:
            file_name, _ = QtWidgets.QFileDialog.getSaveFileName(
                self, "Save Route",
                resource_utils.base_path() + "/routes",
                "AS64 Route Files (*.as64)")

            if file_name != '':
                self.route_path = file_name
            else:
                return -1

        route_loader.save(route, self.route_path)
        config.set_key("route", "path", self.route_path)
        config.save_config()
        self.route_updated.emit()