コード例 #1
0
class YesNoDialog(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.message = QLabel()
        self.messageIcon = QLabel()
        self.yesButton = QPushButton("Yes")
        self.noButton = QPushButton("No")

        self.buttons_layout = QHBoxLayout()
        self.buttons_layout.addWidget(self.yesButton)
        self.buttons_layout.addWidget(self.noButton)

        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.messageIcon, 0, 0, 2, 1)
        self.main_layout.addWidget(QLabel(), 0, 1, 1, 1)  # add space
        self.main_layout.addWidget(self.message, 0, 2, 2, 3)
        self.main_layout.addLayout(self.buttons_layout, 2, 4, 1, 1)
        self.main_layout.setContentsMargins(20, 20, 20, 20)
        self.setLayout(self.main_layout)

        self.result = "No"
        self.setup_ui()
        self.signal_connect()

    def setup_ui(self):
        self.disable_question_mark_window()
        self.set_message_icon_warning()
        self.reset_dialog_values()
        # self.increase_message_font_size(1)
        self.set_default_buttons()

    def signal_connect(self):
        self.yesButton.clicked.connect(self.click_yes)
        self.noButton.clicked.connect(self.click_no)

    def click_yes(self):
        self.result = "Yes"
        self.close()

    def click_no(self):
        self.result = "No"
        self.close()

    def reset_dialog_values(self):
        self.setWindowTitle("")  # determine when use
        self.message.setText("")  # determine when use
        self.setWindowIcon(GlobalFiles.RefreshIcon)

    def set_message_icon_warning(self):
        self.messageIcon.setPixmap(QtGui.QPixmap(GlobalFiles.WarningCheckBigIconPath))

    def disable_question_mark_window(self):
        self.setWindowFlag(QtCore.Qt.WindowContextHelpButtonHint, on=False)

    def increase_message_font_size(self, value):
        message_font = self.message.font()
        message_font.setPointSize(self.message.fontInfo().pointSize() + value)
        self.message.setFont(message_font)

    def set_default_buttons(self):
        self.yesButton.setDefault(False)
        self.noButton.setDefault(True)

    def showEvent(self, a0: QtGui.QShowEvent) -> None:
        super().showEvent(a0)
        self.setFixedSize(self.size())
class ConfirmCheckMakeThisTrackDefaultWithUnCheckOption(QDialog):
    def __init__(self, track_type, parent=None):
        super().__init__(parent)
        self.track_type = track_type
        self.yesButton = QPushButton("OK")
        self.noButton = QPushButton("Cancel")
        self.thirdButton = QPushButton("Uncheck this one")
        self.setWindowTitle("Confirm Check")
        self.setWindowIcon(GlobalFiles.QuestionIcon)
        self.message = QLabel(
            "<nobr>Are you sure?<br>This will <b>uncheck</b> set default and set forced options "
            "from " + self.track_type + " tab")
        self.messageIcon = QLabel()

        self.buttons_layout = QHBoxLayout()
        self.buttons_layout.addWidget(self.thirdButton)
        self.buttons_layout.addWidget(self.yesButton)
        self.buttons_layout.addWidget(self.noButton)

        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.messageIcon, 0, 0, 2, 1)
        self.main_layout.addWidget(QLabel(), 0, 1, 1, 1)  # add space
        self.main_layout.addWidget(self.message, 0, 2, 2, 3)
        self.main_layout.addLayout(self.buttons_layout, 2, 4, 1, 1)
        self.main_layout.setContentsMargins(20, 20, 20, 20)
        self.setLayout(self.main_layout)

        self.result = "No"
        self.setup_ui()
        self.signal_connect()

    def setup_ui(self):
        self.disable_question_mark_window()
        self.set_message_icon_info()
        # self.increase_message_font_size(1)
        self.set_default_buttons()

    def signal_connect(self):
        self.yesButton.clicked.connect(self.click_yes)
        self.noButton.clicked.connect(self.click_no)
        self.thirdButton.clicked.connect(self.click_third_button)

    def click_yes(self):
        self.result = "Yes"
        self.close()

    def click_no(self):
        self.result = "No"
        self.close()

    def click_third_button(self):
        self.result = "Third"
        self.close()

    def disable_question_mark_window(self):
        self.setWindowFlag(QtCore.Qt.WindowContextHelpButtonHint, on=False)

    def increase_message_font_size(self, value):
        message_font = self.message.font()
        message_font.setPointSize(self.message.fontInfo().pointSize() + value)
        self.message.setFont(message_font)

    def set_message_icon_info(self):
        self.messageIcon.setPixmap(QtGui.QPixmap(GlobalFiles.InfoBigIconPath))

    def set_default_buttons(self):
        self.yesButton.setDefault(False)
        self.noButton.setDefault(True)

    def showEvent(self, a0: QtGui.QShowEvent) -> None:
        super().showEvent(a0)
        self.setFixedSize(self.size())

    def execute(self):
        self.exec_()
コード例 #3
0
class InvalidPathDialog(QDialog):
    def __init__(self,
                 window_title="Invalid Path",
                 error_message="Please Enter a Valid Path",
                 parent=None):
        super().__init__(parent)
        self.error_message = error_message
        self.window_title = window_title
        self.message = QLabel()
        self.messageIcon = QLabel()
        self.yesButton = QPushButton("OK")

        self.buttons_layout = QHBoxLayout()
        self.buttons_layout.addWidget(self.yesButton)

        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.messageIcon, 0, 0, 2, 1)
        self.main_layout.addWidget(QLabel(), 0, 1, 1, 1)  # add space
        self.main_layout.addWidget(self.message, 0, 2, 2, 3)
        self.main_layout.addLayout(self.buttons_layout, 2, 4, 1, 1)
        self.main_layout.setContentsMargins(20, 20, 20, 20)
        self.setLayout(self.main_layout)

        self.setup_ui()
        self.signal_connect()

    def setup_ui(self):
        self.disable_question_mark_window()
        self.set_message_icon_critical()
        self.set_dialog_values()
        # self.increase_message_font_size(1)
        self.set_default_buttons()

    def signal_connect(self):
        self.yesButton.clicked.connect(self.click_yes)

    def click_yes(self):
        self.close()

    def set_dialog_values(self):
        self.setWindowTitle(self.window_title)
        self.message.setText(self.error_message)
        self.setWindowIcon(GlobalFiles.ErrorIcon)

    def disable_question_mark_window(self):
        self.setWindowFlag(Qt.WindowContextHelpButtonHint, on=False)

    def increase_message_font_size(self, value):
        message_font = self.message.font()
        message_font.setPointSize(self.message.fontInfo().pointSize() + value)
        self.message.setFont(message_font)

    def set_message_icon_critical(self):
        self.messageIcon.setPixmap(QtGui.QPixmap(GlobalFiles.ErrorBigIconPath))

    def set_default_buttons(self):
        self.yesButton.setDefault(True)

    def showEvent(self, a0: QtGui.QShowEvent) -> None:
        super().showEvent(a0)
        self.setFixedSize(self.size())

    def execute(self):
        self.exec_()
コード例 #4
0
class OkDialog(QDialog):
    def __init__(self, window_title, parent=None):
        super().__init__(parent)
        self.info_message = ""
        self.window_title = window_title
        self.message = QLabel()
        self.mux_good_photo_label = QLabel()
        self.mux_good_photo_label.setPixmap(
            QtGui.QPixmap(GlobalFiles.GoodJobIconPath))
        self.messageIcon = QLabel()
        self.yes_button = QPushButton("OK")
        self.show_log_file_button = QPushButton("Open log file")

        self.buttons_layout = QHBoxLayout()
        self.buttons_layout.addWidget(self.yes_button)
        self.buttons_layout.addWidget(self.show_log_file_button)

        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.mux_good_photo_label,
                                   0,
                                   0,
                                   3,
                                   4,
                                   alignment=Qt.AlignCenter)
        self.main_layout.addLayout(self.buttons_layout, 3, 1, 1, 2)
        self.main_layout.setContentsMargins(10, 20, 10, 20)
        self.setLayout(self.main_layout)

        self.setup_ui()
        self.signal_connect()

    def setup_ui(self):
        self.disable_question_mark_window()
        self.set_message_icon_ok()
        self.set_dialog_values()
        # self.increase_message_font_size(1)
        self.set_default_buttons()

    def set_message_icon_ok(self):
        self.messageIcon.setPixmap(QtGui.QPixmap(GlobalFiles.OkIconPath))

    def signal_connect(self):
        self.yes_button.clicked.connect(self.click_yes)
        self.show_log_file_button.clicked.connect(click_show_log_file)

    def click_yes(self):
        self.close()

    def set_dialog_values(self):
        self.setWindowTitle(self.window_title)
        self.setWindowIcon(GlobalFiles.OkIcon)
        self.message.setText(self.info_message)

    def disable_question_mark_window(self):
        self.setWindowFlag(QtCore.Qt.WindowContextHelpButtonHint, on=False)

    def increase_message_font_size(self, value):
        message_font = self.message.font()
        message_font.setPointSize(self.message.fontInfo().pointSize() + value)
        self.message.setFont(message_font)

    def set_default_buttons(self):
        self.yes_button.setDefault(True)

    def showEvent(self, a0: QtGui.QShowEvent) -> None:
        super().showEvent(a0)
        self.setFixedSize(self.size())

    def execute(self):
        self.exec_()
コード例 #5
0
class CloseDialog(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.info_message = "Are you sure you want to exit ?\nThis will stop current muxing"
        self.window_title = "Confirm Exit"
        self.message = QLabel()
        self.messageIcon = QLabel()
        self.exit_button = QPushButton("Stop Muxing")
        self.cancel_button = QPushButton("Cancel")
        self.result = "Cancel"
        self.buttons_layout = QHBoxLayout()
        self.buttons_layout.addWidget(self.exit_button)
        self.buttons_layout.addWidget(self.cancel_button)

        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.messageIcon, 0, 0, 2, 1)
        self.main_layout.addWidget(QLabel(), 0, 1, 1, 1)  # add space
        self.main_layout.addWidget(self.message, 0, 2, 2, 3)
        self.main_layout.addLayout(self.buttons_layout, 2, 0, -1, -1)
        self.main_layout.setContentsMargins(20, 20, 20, 20)
        self.setLayout(self.main_layout)

        self.setup_ui()
        self.signal_connect()

    def setup_ui(self):
        self.disable_question_mark_window()
        self.set_message_icon_warning()
        self.set_dialog_values()
        # self.increase_message_font_size(1)
        self.set_default_buttons()

    def set_message_icon_warning(self):
        self.messageIcon.setPixmap(
            QtGui.QPixmap(GlobalFiles.WarningCheckBigIconPath))

    def signal_connect(self):
        self.exit_button.clicked.connect(self.click_exit)
        self.cancel_button.clicked.connect(self.click_cancel)

    def click_cancel(self):
        self.result = "Cancel"
        self.close()

    def click_exit(self):
        self.result = "Exit"
        self.close()

    def set_dialog_values(self):
        self.setWindowTitle(self.window_title)
        self.setWindowIcon(GlobalFiles.WarningCheckBigIcon)
        self.message.setText(self.info_message)

    def disable_question_mark_window(self):
        self.setWindowFlag(QtCore.Qt.WindowContextHelpButtonHint, on=False)

    def increase_message_font_size(self, value):
        message_font = self.message.font()
        message_font.setPointSize(self.message.fontInfo().pointSize() + value)
        self.message.setFont(message_font)

    def set_default_buttons(self):
        self.cancel_button.setDefault(True)

    def showEvent(self, a0: QtGui.QShowEvent) -> None:
        super().showEvent(a0)
        self.setFixedSize(self.size())

    def execute(self):
        self.exec_()
コード例 #6
0
class AboutDialog(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowTitle("About MKV Muxing Batch GUI")
        self.setWindowIcon(AboutIcon)
        self.app_icon_label = QLabel()
        self.app_icon_label.setPixmap(QPixmap(AppIconPath).scaledToHeight(175))
        self.app_name_label = QLabel("MKV Muxing Batch GUI")
        self.app_current_version = QLabel("Version: " + str(Version))
        self.app_link_github_label = QLabel("Check for updates on: " + GitHubRepoUrlTag)
        self.app_link_github_label.setOpenExternalLinks(True)
        self.app_licence_label = QLabel("MKV Muxing Batch GUI is released under the " + GPLV2UrlTag + "+ licence")
        self.app_licence_label.setOpenExternalLinks(True)
        self.app_warranty_label = QLabel()
        self.app_warranty_label.setText("it is provided as is with no warranty of any kind, including the \n"
                                        "warranty of design and fitness for a particular purpose")
        self.app_warranty_label.setAlignment(Qt.AlignCenter)
        self.app_bug_report_label = QLabel(
            "you can report issues on the " + GitHubIssuesUrlTag)
        self.app_bug_report_label.setOpenExternalLinks(True)
        self.app_bug_report_issue_link_label = QLabel("please visit the " + GitHubIssuesUrlTag)
        self.app_bug_report_issue_link_label.setOpenExternalLinks(True)
        self.app_follow_me_label = QLabel("Contact me on:")
        self.app_bug_report_label.setOpenExternalLinks(True)
        self.social_twitter_label = TwitterLabel()
        self.social_telegram_label = TelegramLabel()
        self.ok_button = QPushButton("OK")
        self.social_media_layout = QHBoxLayout()
        self.social_media_layout.addWidget(QLabel(""), stretch=3)
        self.social_media_layout.addWidget(self.social_twitter_label, stretch=0)
        self.social_media_layout.addWidget(QLabel(""), stretch=0)
        self.social_media_layout.addWidget(self.social_telegram_label, stretch=0)
        self.social_media_layout.addWidget(QLabel(""), stretch=3)

        self.main_layout = QVBoxLayout()
        self.main_layout.addWidget(self.app_icon_label, alignment=Qt.AlignCenter)
        self.main_layout.addWidget(self.app_name_label, alignment=Qt.AlignCenter)
        self.main_layout.addWidget(self.app_current_version, alignment=Qt.AlignCenter)
        self.main_layout.addWidget(self.app_link_github_label, alignment=Qt.AlignCenter)
        # self.main_layout.addWidget(self.app_licence_label, alignment=Qt.AlignCenter)
        # self.main_layout.addWidget(self.app_warranty_label, alignment=Qt.AlignCenter)
        self.main_layout.addWidget(self.app_bug_report_label, alignment=Qt.AlignCenter)
        # self.main_layout.addWidget(self.app_bug_report_issue_link_label, alignment=Qt.AlignCenter)
        self.main_layout.addWidget(self.app_follow_me_label, alignment=Qt.AlignCenter)
        self.main_layout.addLayout(self.social_media_layout)
        self.main_layout.addWidget(self.ok_button, alignment=Qt.AlignCenter)
        # self.main_layout.setContentsMargins(20, 20, 20, 20)
        self.setLayout(self.main_layout)
        self.setup_ui()
        self.signal_connect()

    def setup_app_name_label(self):
        app_name_font = self.app_name_label.font()
        app_name_font.setWeight(QFont.DemiBold)
        app_name_font.setPixelSize(self.app_name_label.fontInfo().pixelSize() + 2)
        self.app_name_label.setFont(app_name_font)

    def setup_ui(self):
        self.setup_app_name_label()
        self.disable_question_mark_window()

    def signal_connect(self):
        self.ok_button.clicked.connect(self.click_yes)

    def click_yes(self):
        self.close()

    def disable_question_mark_window(self):
        self.setWindowFlag(QtCore.Qt.WindowContextHelpButtonHint, on=False)

    def showEvent(self, a0: QtGui.QShowEvent) -> None:
        super().showEvent(a0)
        self.setFixedSize(QSize(self.size().width() + 30, self.size().height()))

    def execute(self):
        self.exec_()
コード例 #7
0
class ConfirmUsingMkvpropedit(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.fast_muxing_button = QPushButton("Fast Muxing")
        self.cancel_button = QPushButton("Cancel")
        self.usual_muxing_button = QPushButton("Usual Muxing")
        self.setWindowTitle("We can make it faster")
        self.message = QLabel(
            "<nobr>We can fast your muxing by editing the source files directly <br>This will "
            "<b>overwrite</b> your video files and can't be undone")
        self.messageIcon = QLabel()

        self.buttons_layout = QHBoxLayout()
        self.buttons_layout.addWidget(self.usual_muxing_button)
        self.buttons_layout.addWidget(self.fast_muxing_button)
        self.buttons_layout.addWidget(self.cancel_button)

        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.messageIcon, 0, 0, 2, 1)
        self.main_layout.addWidget(QLabel(), 0, 1, 1, 1)  # add space
        self.main_layout.addWidget(self.message, 0, 2, 2, 3)
        self.main_layout.addLayout(self.buttons_layout, 2, 4, 1, 1)
        self.main_layout.setContentsMargins(20, 20, 20, 20)
        self.setLayout(self.main_layout)

        self.result = "cancel"
        self.setup_ui()
        self.signal_connect()

    def setup_ui(self):
        self.disable_question_mark_window()
        self.set_message_icon_info()
        # self.increase_message_font_size(1)
        self.set_default_buttons()

    def signal_connect(self):
        self.fast_muxing_button.clicked.connect(self.click_fast_muxing_button)
        self.cancel_button.clicked.connect(self.click_cancel_button)
        self.usual_muxing_button.clicked.connect(
            self.click_usual_muxing_button)

    def click_fast_muxing_button(self):
        self.result = "mkvpropedit"
        self.close()

    def click_cancel_button(self):
        self.result = "cancel"
        self.close()

    def click_usual_muxing_button(self):
        self.result = "mkvmerge"
        self.close()

    def reset_dialog_values(self):
        self.setWindowTitle("")  # determine when use
        self.message.setText("")  # determine when use

    def disable_question_mark_window(self):
        self.setWindowFlag(QtCore.Qt.WindowContextHelpButtonHint, on=False)

    def increase_message_font_size(self, value):
        message_font = self.message.font()
        message_font.setPointSize(self.message.fontInfo().pointSize() + value)
        self.message.setFont(message_font)

    def set_message_icon_warning(self):
        self.messageIcon.setPixmap(get_pixmap_from_warning_icon())

    def set_message_icon_critical(self):
        self.messageIcon.setPixmap(get_pixmap_from_warning_icon())

    def set_message_icon_info(self):
        self.messageIcon.setPixmap(get_pixmap_from_info_icon())

    def set_default_buttons(self):
        self.fast_muxing_button.setDefault(False)
        self.cancel_button.setDefault(True)

    def showEvent(self, a0: QtGui.QShowEvent) -> None:
        super().showEvent(a0)
        self.setFixedSize(self.size())

    def execute(self):
        self.exec_()