diff -r 6a3b0acda958 -r 1b67aa43ec93 src/eric7/Preferences/ConfigurationPages/PrinterPage.py --- a/src/eric7/Preferences/ConfigurationPages/PrinterPage.py Fri Oct 13 08:30:15 2023 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/PrinterPage.py Fri Oct 13 09:10:05 2023 +0200 @@ -8,9 +8,12 @@ """ from PyQt6.QtCore import pyqtSlot +from PyQt6.QtWidgets import QButtonGroup from eric7 import Preferences +from eric7.QScintilla.QsciScintillaCompat import QsciScintillaPrintColorMode +from ..ConfigurationDialog import ConfigurationMode from .ConfigurationPageBase import ConfigurationPageBase from .Ui_PrinterPage import Ui_PrinterPage @@ -28,6 +31,29 @@ self.setupUi(self) self.setObjectName("PrinterPage") + self.__displayMode = None + + self.__printColorModeGroup = QButtonGroup() + self.__printColorModeGroup.addButton( + self.normalModeButton, QsciScintillaPrintColorMode.Normal + ) + self.__printColorModeGroup.addButton( + self.invertLightModeButton, QsciScintillaPrintColorMode.InvertLight + ) + self.__printColorModeGroup.addButton( + self.blackOnWhiteModeButton, QsciScintillaPrintColorMode.BlackOnWhite + ) + self.__printColorModeGroup.addButton( + self.colorOnWhiteModeButton, QsciScintillaPrintColorMode.ColorOnWhite + ) + self.__printColorModeGroup.addButton( + self.colorOnWhiteDefaultModeButton, + QsciScintillaPrintColorMode.ColorOnWhiteDefaultBackground, + ) + self.__printColorModeGroup.addButton( + self.screenColorsModeButton, QsciScintillaPrintColorMode.ScreenColors + ) + # set initial values self.printerNameEdit.setText(Preferences.getPrinter("PrinterName")) if Preferences.getPrinter("ColorMode"): @@ -47,6 +73,27 @@ self.bottomMarginSpinBox.setValue(Preferences.getPrinter("BottomMargin")) self.resolutionSpinBox.setValue(Preferences.getPrinter("Resolution")) + # editor related printer setting + self.__printColorModeGroup.button( + Preferences.getEditor("PrintColorMode") + ).setChecked(True) + + def setMode(self, displayMode): + """ + Public method to perform mode dependent setups. + + @param displayMode mode of the configuration dialog + @type ConfigurationMode + """ + self.__displayMode = displayMode + self.printColorModeBox.setVisible( + self.__displayMode + in ( + ConfigurationMode.DEFAULTMODE, + ConfigurationMode.EDITORMODE, + ) + ) + def save(self): """ Public slot to save the Printer configuration. @@ -68,6 +115,16 @@ Preferences.setPrinter("BottomMargin", self.bottomMarginSpinBox.value()) Preferences.setPrinter("Resolution", self.resolutionSpinBox.value()) + if self.__displayMode in ( + ConfigurationMode.DEFAULTMODE, + ConfigurationMode.EDITORMODE, + ): + # editor related printer setting + Preferences.setEditor( + "PrintColorMode", + QsciScintillaPrintColorMode(self.__printColorModeGroup.checkedId()), + ) + @pyqtSlot() def on_printheaderFontButton_clicked(self): """