Exemplo n.º 1
0
    def change_font(self, name):
        """ Changes the font used throughout the application.
        Currently triggered via a menu action.

        name: Used to specify whether the font should be resized or
              changed to a different font family.
        """

        # Get the context.
        if name == "":
            # Case 1: Default Change Font menu option.
            ok, f = QFontDialog.getFont(self.window)
            start = False
        elif name == "+" or name == "-":
            # Case 2: Increase/Decrease font size menu option.
            f = self.ui.table_PS.font()
            f_size = f.pointSize() + 2 if name == "+" else f.pointSize() - 2
            f = f.toString().split(",")[0]
            f = QFont(f, f_size)
            ok, start = True, False
        else:
            if type(name) == str:
                # Case 3.1: Init with pref.json
                f = name.split("%")
                f = QFont(f[0], int(f[1]))
            else:
                # Case 3.2: Init without pref.json (first launch).
                f = name
            ok, start = True, True
        if ok:
            # Change the font for everything (within reason).
            self.font = f
            new_font = f
            big_font = QFont(f.toString().split(",")[0], f.pointSize() + 6)

            # self.ui.tabs.setFont(new_font)

            # PS tab
            self.ui.table_PS.setFont(new_font)
            self.ui.table_PS.horizontalHeader().setFont(new_font)
            self.ui.text_browser_PS.setFont(big_font)
            self.ui.refresh_pch_btn.setFont(new_font)
            self.ui.btn_dwn_all.setFont(new_font)

            # Local tab
            self.ui.table_local.setFont(new_font)
            self.ui.table_local.horizontalHeader().setFont(new_font)
            self.ui.text_browser_local.setFont(big_font)
            self.ui.back_btn_local.setFont(new_font)
            self.ui.check_for_updates_btn.setFont(new_font)
            self.ui.update_patch_notes.setFont(new_font)
            self.ui.page_label.setFont(new_font)
            self.ui.btn_next_page.setFont(new_font)
            self.ui.btn_prev_page.setFont(new_font)

            # SD tab
            self.ui.sd_tree.setFont(new_font)
            self.ui.table_sd_left.setFont(new_font)
            self.ui.table_sd_left.horizontalHeader().setFont(new_font)
            self.ui.table_sd_left.verticalHeader().setFont(new_font)
            self.ui.table_sd_right.setFont(new_font)
            self.ui.table_sd_right.horizontalHeader().setFont(new_font)
            self.ui.table_sd_right.verticalHeader().setFont(new_font)
            self.ui.delete_folder_sd_btn.setFont(new_font)
            self.ui.import_all_btn.setFont(new_font)
            self.ui.import_all_ver_btn.setFont(new_font)

            # Bank tab
            self.ui.table_bank_local.setFont(new_font)
            self.ui.table_bank_local.horizontalHeader().setFont(new_font)
            self.ui.table_bank_left.setFont(new_font)
            self.ui.text_browser_viz.setFont(new_font)
            self.ui.table_bank_left.horizontalHeader().setFont(new_font)
            self.ui.table_bank_left.verticalHeader().setFont(new_font)
            self.ui.table_bank_right.setFont(new_font)
            self.ui.table_bank_right.horizontalHeader().setFont(new_font)
            self.ui.table_bank_right.verticalHeader().setFont(new_font)
            self.ui.back_btn_bank.setFont(new_font)
            self.ui.btn_save_bank.setFont(new_font)
            self.ui.btn_load_bank.setFont(new_font)
            self.ui.btn_clear_bank.setFont(new_font)
            self.ui.btn_export_bank.setFont(new_font)
            self.ui.text_browser_bank.setFont(big_font)

            if not start:
                for i in range(self.ui.table_PS.rowCount()):
                    self.ui.table_PS.cellWidget(i, 0).setFont(new_font)
                    self.ui.table_PS.cellWidget(i, 4).setFont(new_font)
                if self.ui.table_local.cellWidget(0, 0) is not None:
                    for i in range(self.ui.table_local.rowCount()):
                        self.ui.table_local.cellWidget(i, 0).setFont(new_font)
                        self.ui.table_local.cellWidget(i, 4).setFont(new_font)
                        self.ui.table_local.cellWidget(i, 5).setFont(new_font)
                for i in range(32):
                    # Need trys here in case the table does not have a
                    # cell widget there yet.
                    try:
                        self.ui.table_sd_left.cellWidget(i,
                                                         1).setFont(new_font)
                    except AttributeError:
                        pass
                    try:
                        self.ui.table_sd_left.cellWidget(i,
                                                         2).setFont(new_font)
                    except AttributeError:
                        pass
                    try:
                        self.ui.table_sd_right.cellWidget(i,
                                                          1).setFont(new_font)
                    except AttributeError:
                        pass
                    try:
                        self.ui.table_sd_right.cellWidget(i,
                                                          2).setFont(new_font)
                    except AttributeError:
                        pass
                    try:
                        self.ui.table_bank_left.cellWidget(i,
                                                           1).setFont(new_font)
                    except AttributeError:
                        pass
                    try:
                        self.ui.table_bank_left.cellWidget(i,
                                                           2).setFont(new_font)
                    except AttributeError:
                        pass
                    try:
                        self.ui.table_bank_right.cellWidget(
                            i, 1).setFont(new_font)
                    except AttributeError:
                        pass
                    try:
                        self.ui.table_bank_right.cellWidget(
                            i, 2).setFont(new_font)
                    except AttributeError:
                        pass
                if self.ui.table_bank_local.cellWidget(0, 0) is not None:
                    for i in range(self.ui.table_bank_local.rowCount()):
                        self.ui.table_bank_local.cellWidget(
                            i, 0).setFont(new_font)
Exemplo n.º 2
0
    def applyChanges(self):
        """Activate changes selected on Preferences Dialog"""

        if self.preferences:
            #
            # Language
            #
            if self.preferences.language is not None:
                config.data.set(config.ConfigKey.Language,
                                self.preferences.language)
                self.parent.setLanguage()
            #
            # Font & Size
            #
            if (self.preferences.font
                    is not None) or (self.preferences.fontSize is not None):
                font = QFont()
                font.fromString(config.data.get(config.ConfigKey.Font))

                if self.preferences.font is not None:
                    font = self.preferences.font

                if self.preferences.fontSize is not None:
                    font.setPointSize(self.preferences.fontSize)

                self.parent.setFont(font)
                self.parent.setAppFont(font)
                config.data.set(config.ConfigKey.Font, font.toString())
            #
            # Logging
            #
            if self.preferences.enableLogging is not None:
                config.data.set(config.ConfigKey.Logging,
                                self.preferences.enableLogging)
                self.parent.enableLogging(self.preferences.enableLogging)
            #
            # LogViewer
            #
            loggingOn = config.data.get(config.ConfigKey.Logging)
            if loggingOn:
                if self.preferences.enableLogViewer is not None:
                    config.data.set(config.ConfigKey.LogViewer,
                                    self.preferences.enableLogViewer)
                    if self.preferences.enableLogViewer:
                        if self.parent.logViewerWidget.tab < 0:
                            self.parent.logViewerWidget.unHideTab()
                            self.parent.logViewerWidget.setAsCurrentTab()
                    else:
                        if self.parent.logViewerWidget.tab >= 0:
                            self.parent.logViewerWidget.hideTab()
            else:
                config.data.set(config.ConfigKey.LogViewer, False)
                if self.parent.logViewerWidget.tab >= 0:
                    self.parent.logViewerWidget.hideTab()
            #
            # Job History
            #
            if config.data.get(config.ConfigKey.JobHistory) is not None:
                if self.preferences.enableJobHistory is not None:
                    config.data.set(config.ConfigKey.JobHistory,
                                    self.preferences.enableJobHistory)
                    if self.preferences.enableJobHistory:
                        if self.parent.historyWidget.tab < 0:
                            self.parent.historyWidget.unHideTab()
                            self.parent.historyWidget.setAsCurrentTab()
                    else:
                        if self.parent.historyWidget.tab >= 0:
                            self.parent.historyWidget.hideTab()
            #
            # Algorithm
            #
            if config.data.get(config.ConfigKey.Algorithm) is not None:
                for index, rb in enumerate(self.radioButtons):
                    if rb.isChecked():
                        config.data.set(config.ConfigKey.Algorithm, index)
            #
            # Restore window size
            #
            if self.preferences.restoreWindowSize is not None:

                defaultGeometry = config.data.get(
                    config.ConfigKey.DefaultGeometry)
                self.parent.setGeometry(
                    defaultGeometry[0],
                    defaultGeometry[1],
                    defaultGeometry[2],
                    defaultGeometry[3],
                )
                # Center window some title bar goes out of screen
                centerWidget(self.parent)
                # Update geometry includes position
                base64Geometry = self.parent.saveGeometry().toBase64()
                b = base64Geometry.data()  # b is a bytes string
                config.data.set(config.ConfigKey.Geometry, b)