src/eric7/Preferences/ConfigurationPages/PrinterPage.py

branch
eric7
changeset 10244
1b67aa43ec93
parent 10069
435cc5875135
child 10428
a071d4065202
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):
         """

eric ide

mercurial