eric6/UI/PythonAstViewer.py

changeset 7705
90a9aefd4253
parent 7704
9251c4dc4f7a
child 7707
6abcf4275d0e
equal deleted inserted replaced
7704:9251c4dc4f7a 7705:90a9aefd4253
16 QTreeWidget, QApplication, QTreeWidgetItem, QAbstractItemView, QWidget, 16 QTreeWidget, QApplication, QTreeWidgetItem, QAbstractItemView, QWidget,
17 QVBoxLayout 17 QVBoxLayout
18 ) 18 )
19 19
20 from ThirdParty.asttokens.asttokens import ASTTokens 20 from ThirdParty.asttokens.asttokens import ASTTokens
21
22 import Preferences
21 23
22 24
23 class PythonAstViewer(QWidget): 25 class PythonAstViewer(QWidget):
24 """ 26 """
25 Class implementing a widget to visualize the Python AST for some Python 27 Class implementing a widget to visualize the Python AST for some Python
58 self.__astWidget.setSortingEnabled(False) 60 self.__astWidget.setSortingEnabled(False)
59 self.__astWidget.setSelectionBehavior(QAbstractItemView.SelectRows) 61 self.__astWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
60 self.__astWidget.setSelectionMode(QAbstractItemView.SingleSelection) 62 self.__astWidget.setSelectionMode(QAbstractItemView.SingleSelection)
61 self.__astWidget.setAlternatingRowColors(True) 63 self.__astWidget.setAlternatingRowColors(True)
62 64
65 self.__errorColor = QBrush(
66 Preferences.getPython("ASTViewerErrorColor"))
67
63 self.__astWidget.itemClicked.connect(self.__astItemClicked) 68 self.__astWidget.itemClicked.connect(self.__astItemClicked)
64 69
65 self.__vm.astViewerStateChanged.connect(self.__astViewerStateChanged) 70 self.__vm.astViewerStateChanged.connect(self.__astViewerStateChanged)
66 71
67 self.hide() 72 self.hide()
177 @return generated item 182 @return generated item
178 @rtype QTreeWidgetItem 183 @rtype QTreeWidgetItem
179 """ 184 """
180 itm = QTreeWidgetItem(self.__astWidget, [error]) 185 itm = QTreeWidgetItem(self.__astWidget, [error])
181 itm.setFirstColumnSpanned(True) 186 itm.setFirstColumnSpanned(True)
182 itm.setForeground(0, QBrush(Qt.red)) 187 itm.setForeground(0, self.__errorColor)
183 return itm 188 return itm
184 189
185 def __loadAST(self): 190 def __loadAST(self):
186 """ 191 """
187 Private method to generate the AST from the source of the current 192 Private method to generate the AST from the source of the current
495 500
496 self.__editor.gotoLine(startLine, firstVisible=True, 501 self.__editor.gotoLine(startLine, firstVisible=True,
497 expand=True) 502 expand=True)
498 self.__editor.setHighlight(startLine - 1, startIndex, 503 self.__editor.setHighlight(startLine - 1, startIndex,
499 endLine - 1, endIndex) 504 endLine - 1, endIndex)
505
506 @pyqtSlot()
507 def preferencesChanged(self):
508 """
509 Public slot handling changes of the AST viewer settings.
510 """
511 self.__errorColor = QBrush(
512 Preferences.getPython("ASTViewerErrorColor"))

eric ide

mercurial