Preferences/ConfigurationPages/EditorHighlightingStylesPage.py

branch
Py2 comp.
changeset 3142
55030c09e142
parent 3060
5883ce99ee12
parent 3107
5b496e690984
child 3145
a9de05d4a22f
--- a/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Fri Dec 13 22:45:47 2013 +0100
+++ b/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Fri Dec 13 23:39:14 2013 +0100
@@ -9,7 +9,7 @@
 
 from __future__ import unicode_literals    # __IGNORE_WARNING__
 
-from PyQt4.QtCore import pyqtSlot, QFileInfo, QFile, QIODevice
+from PyQt4.QtCore import pyqtSlot, Qt, QFileInfo, QFile, QIODevice
 from PyQt4.QtGui import QPalette, QColorDialog, QFontDialog, \
     QInputDialog, QFont, QMenu
 
@@ -109,8 +109,29 @@
         
         self.styleGroup.setEnabled(True)
         self.styleElementList.addItems(self.lexer.styles)
+        self.__styleAllItems()
         self.styleElementList.setCurrentRow(0)
         
+    def __styleAllItems(self):
+        """
+        Private method to style all items of the style element list.
+        """
+        for row in range(self.styleElementList.count()):
+            style = self.lexer.ind2style[row]
+            colour = self.lexer.color(style)
+            paper = self.lexer.paper(style)
+            font = self.lexer.font(style)
+            eolfill = self.lexer.eolFill(style)
+            
+            itm = self.styleElementList.item(row)
+            itm.setFont(font)
+            itm.setBackground(paper)
+            itm.setForeground(colour)
+            if eolfill:
+                itm.setCheckState(Qt.Checked)
+            else:
+                itm.setCheckState(Qt.Unchecked)
+        
     def on_styleElementList_currentRowChanged(self, index):
         """
         Private method to set up the style element part of the source page.
@@ -152,8 +173,10 @@
                     style = self.lexer.ind2style[
                         self.styleElementList.row(selItem)]
                     self.lexer.setColor(colour, style)
+                    selItem.setForeground(colour)
             else:
                 self.lexer.setColor(colour, self.style)
+                self.styleElementList.currentItem().setForeground(colour)
         
     @pyqtSlot()
     def on_backgroundButton_clicked(self):
@@ -172,8 +195,10 @@
                     style = self.lexer.ind2style[
                         self.styleElementList.row(selItem)]
                     self.lexer.setPaper(colour, style)
+                    selItem.setBackground(colour)
             else:
                 self.lexer.setPaper(colour, self.style)
+                self.styleElementList.currentItem().setBackground(colour)
         
     @pyqtSlot()
     def on_allBackgroundColoursButton_clicked(self):
@@ -189,6 +214,7 @@
             self.sampleText.repaint()
             for style in list(self.lexer.ind2style.values()):
                 self.lexer.setPaper(colour, style)
+            self.__styleAllItems()
         
     def __changeFont(self, doAll, familyOnly, sizeOnly):
         """
@@ -244,13 +270,18 @@
             if doAll:
                 for style in list(self.lexer.ind2style.values()):
                     setFont(font, style, familyOnly, sizeOnly)
+                self.__styleAllItems()
             elif len(self.styleElementList.selectedItems()) > 1:
                 for selItem in self.styleElementList.selectedItems():
                     style = self.lexer.ind2style[
                         self.styleElementList.row(selItem)]
                     setFont(font, style, familyOnly, sizeOnly)
+                    itmFont = self.lexer.font(style)
+                    selItem.setFont(itmFont)
             else:
                 setFont(font, self.style, familyOnly, sizeOnly)
+                itmFont = self.lexer.font(self.style)
+                self.styleElementList.currentItem().setFont(itmFont)
         
     def __fontButtonMenuTriggered(self, act):
         """
@@ -278,14 +309,16 @@
         sizeOnly = act.data() in [self.FAMILYANDSIZE, self.SIZEONLY]
         self.__changeFont(True, familyOnly, sizeOnly)
         
-    def on_eolfillCheckBox_toggled(self, b):
+    def on_eolfillCheckBox_toggled(self, on):
         """
         Private method used to set the eolfill for the selected style and
         lexer.
         
-        @param b Flag indicating enabled or disabled state.
+        @param on flag indicating enabled or disabled state (boolean)
         """
-        self.lexer.setEolFill(b, self.style)
+        self.lexer.setEolFill(on, self.style)
+        checkState = Qt.Checked if on else Qt.Unchecked
+        self.styleElementList.currentItem().setCheckState(checkState)
         
     @pyqtSlot()
     def on_allEolFillButton_clicked(self):
@@ -306,6 +339,7 @@
             self.eolfillCheckBox.setChecked(enabled)
             for style in list(self.lexer.ind2style.values()):
                 self.lexer.setEolFill(enabled, style)
+            self.__styleAllItems()
         
     @pyqtSlot()
     def on_defaultButton_clicked(self):
@@ -321,6 +355,7 @@
             self.__setToDefault(self.style)
         self.on_styleElementList_currentRowChanged(
             self.styleElementList.currentRow())
+        self.__styleAllItems()
         
     @pyqtSlot()
     def on_allDefaultButton_clicked(self):
@@ -331,6 +366,7 @@
             self.__setToDefault(style)
         self.on_styleElementList_currentRowChanged(
             self.styleElementList.currentRow())
+        self.__styleAllItems()
         
     def __setToDefault(self, style):
         """
@@ -455,6 +491,8 @@
             self.sampleText.setPalette(pl)
             self.sampleText.repaint()
             self.eolfillCheckBox.setChecked(eolfill)
+            
+            self.__styleAllItems()
         
     def saveState(self):
         """

eric ide

mercurial