ViewManager/ViewManager.py

changeset 6931
faac36ec9d76
parent 6891
93f82da09f22
child 6932
8a3df4c6ac9a
diff -r 33c98cea84f0 -r faac36ec9d76 ViewManager/ViewManager.py
--- a/ViewManager/ViewManager.py	Sat Apr 06 16:33:49 2019 +0200
+++ b/ViewManager/ViewManager.py	Sun Apr 07 19:55:21 2019 +0200
@@ -114,6 +114,8 @@
     @signal syntaxerrorToggled(Editor) emitted when a syntax error is toggled
     @signal previewStateChanged(bool) emitted to signal a change in the
         preview state
+    @signal astViewerStateChanged(bool) emitted to signal a change in the
+        AST viewer state
     @signal editorLanguageChanged(Editor) emitted to signal a change of an
         editor's language
     @signal editorTextChanged(Editor) emitted to signal a change of an
@@ -139,6 +141,7 @@
     bookmarkToggled = pyqtSignal(Editor)
     syntaxerrorToggled = pyqtSignal(Editor)
     previewStateChanged = pyqtSignal(bool)
+    astViewerStateChanged = pyqtSignal(bool)
     editorLanguageChanged = pyqtSignal(Editor)
     editorTextChanged = pyqtSignal(Editor)
     editorLineChanged = pyqtSignal(str, int)
@@ -3745,6 +3748,23 @@
         self.previewAct.toggled[bool].connect(self.__previewEditor)
         self.viewActions.append(self.previewAct)
         
+        self.astViewerAct = E5Action(
+            QCoreApplication.translate('ViewManager', 'Python AST Viewer'),
+            UI.PixmapCache.getIcon("astTree"),
+            QCoreApplication.translate('ViewManager', 'Python AST Viewer'),
+            0, 0, self, 'vm_python_ast_viewer', True)
+        self.astViewerAct.setStatusTip(QCoreApplication.translate(
+            'ViewManager', 'Show the AST for the current Python file'))
+        self.astViewerAct.setWhatsThis(QCoreApplication.translate(
+            'ViewManager',
+            """<b>Python AST Viewer</b>"""
+            """<p>This opens the a tree view of the AST of the current"""
+            """ Python source file.</p>"""
+        ))
+        self.astViewerAct.setChecked(False)
+        self.astViewerAct.toggled[bool].connect(self.__astViewer)
+        self.viewActions.append(self.astViewerAct)
+        
         self.viewActGrp.setEnabled(False)
         self.viewFoldActGrp.setEnabled(False)
         self.unhighlightAct.setEnabled(False)
@@ -3754,6 +3774,7 @@
         self.nextSplitAct.setEnabled(False)
         self.prevSplitAct.setEnabled(False)
         self.previewAct.setEnabled(True)
+        self.astViewerAct.setEnabled(False)
         self.newDocumentViewAct.setEnabled(False)
         self.newDocumentSplitViewAct.setEnabled(False)
         
@@ -3774,6 +3795,7 @@
         menu.addActions(self.viewFoldActGrp.actions())
         menu.addSeparator()
         menu.addAction(self.previewAct)
+        menu.addAction(self.astViewerAct)
         menu.addSeparator()
         menu.addAction(self.unhighlightAct)
         menu.addSeparator()
@@ -3806,6 +3828,7 @@
         tb.addActions(self.viewActGrp.actions())
         tb.addSeparator()
         tb.addAction(self.previewAct)
+        tb.addAction(self.astViewerAct)
         tb.addSeparator()
         tb.addAction(self.newDocumentViewAct)
         if self.canSplit():
@@ -6148,6 +6171,14 @@
         Preferences.setUI("ShowFilePreview", checked)
         self.previewStateChanged.emit(checked)
     
+    def __astViewer(self, checked):
+        """
+        Private slot to handle a change of the AST Viewer selection state.
+        
+        @param checked state of the action (boolean)
+        """
+        self.astViewerStateChanged.emit(checked)
+    
     ##################################################################
     ## Below are the action methods for the macro menu
     ##################################################################
@@ -6616,6 +6647,7 @@
         self.splitViewAct.setEnabled(False)
         self.splitOrientationAct.setEnabled(False)
         self.previewAct.setEnabled(True)
+        self.astViewerAct.setEnabled(False)
         self.macroActGrp.setEnabled(False)
         self.bookmarkActGrp.setEnabled(False)
         self.__enableSpellingActions()
@@ -6634,6 +6666,9 @@
         self.__searchWidget.hide()
         self.__replaceWidget.hide()
         
+        # hide the AST Viewer via its action
+        self.astViewerAct.setChecked(False)
+        
     def __editorOpened(self):
         """
         Private slot to handle the editorOpened signal.
@@ -6658,6 +6693,7 @@
         self.macroActGrp.setEnabled(True)
         self.bookmarkActGrp.setEnabled(True)
         self.__enableSpellingActions()
+        self.astViewerAct.setEnabled(True)
         
         # activate the autosave timer
         if not self.autosaveTimer.isActive() and \

eric ide

mercurial