--- 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): """