112 @signal breakpointToggled(Editor) emitted when a breakpoint is toggled |
112 @signal breakpointToggled(Editor) emitted when a breakpoint is toggled |
113 @signal bookmarkToggled(Editor) emitted when a bookmark is toggled |
113 @signal bookmarkToggled(Editor) emitted when a bookmark is toggled |
114 @signal syntaxerrorToggled(Editor) emitted when a syntax error is toggled |
114 @signal syntaxerrorToggled(Editor) emitted when a syntax error is toggled |
115 @signal previewStateChanged(bool) emitted to signal a change in the |
115 @signal previewStateChanged(bool) emitted to signal a change in the |
116 preview state |
116 preview state |
|
117 @signal astViewerStateChanged(bool) emitted to signal a change in the |
|
118 AST viewer state |
117 @signal editorLanguageChanged(Editor) emitted to signal a change of an |
119 @signal editorLanguageChanged(Editor) emitted to signal a change of an |
118 editor's language |
120 editor's language |
119 @signal editorTextChanged(Editor) emitted to signal a change of an |
121 @signal editorTextChanged(Editor) emitted to signal a change of an |
120 editor's text |
122 editor's text |
121 @signal editorLineChanged(str,int) emitted to signal a change of an |
123 @signal editorLineChanged(str,int) emitted to signal a change of an |
137 cursorChanged = pyqtSignal(Editor) |
139 cursorChanged = pyqtSignal(Editor) |
138 breakpointToggled = pyqtSignal(Editor) |
140 breakpointToggled = pyqtSignal(Editor) |
139 bookmarkToggled = pyqtSignal(Editor) |
141 bookmarkToggled = pyqtSignal(Editor) |
140 syntaxerrorToggled = pyqtSignal(Editor) |
142 syntaxerrorToggled = pyqtSignal(Editor) |
141 previewStateChanged = pyqtSignal(bool) |
143 previewStateChanged = pyqtSignal(bool) |
|
144 astViewerStateChanged = pyqtSignal(bool) |
142 editorLanguageChanged = pyqtSignal(Editor) |
145 editorLanguageChanged = pyqtSignal(Editor) |
143 editorTextChanged = pyqtSignal(Editor) |
146 editorTextChanged = pyqtSignal(Editor) |
144 editorLineChanged = pyqtSignal(str, int) |
147 editorLineChanged = pyqtSignal(str, int) |
145 |
148 |
146 def __init__(self): |
149 def __init__(self): |
3743 )) |
3746 )) |
3744 self.previewAct.setChecked(Preferences.getUI("ShowFilePreview")) |
3747 self.previewAct.setChecked(Preferences.getUI("ShowFilePreview")) |
3745 self.previewAct.toggled[bool].connect(self.__previewEditor) |
3748 self.previewAct.toggled[bool].connect(self.__previewEditor) |
3746 self.viewActions.append(self.previewAct) |
3749 self.viewActions.append(self.previewAct) |
3747 |
3750 |
|
3751 self.astViewerAct = E5Action( |
|
3752 QCoreApplication.translate('ViewManager', 'Python AST Viewer'), |
|
3753 UI.PixmapCache.getIcon("astTree"), |
|
3754 QCoreApplication.translate('ViewManager', 'Python AST Viewer'), |
|
3755 0, 0, self, 'vm_python_ast_viewer', True) |
|
3756 self.astViewerAct.setStatusTip(QCoreApplication.translate( |
|
3757 'ViewManager', 'Show the AST for the current Python file')) |
|
3758 self.astViewerAct.setWhatsThis(QCoreApplication.translate( |
|
3759 'ViewManager', |
|
3760 """<b>Python AST Viewer</b>""" |
|
3761 """<p>This opens the a tree view of the AST of the current""" |
|
3762 """ Python source file.</p>""" |
|
3763 )) |
|
3764 self.astViewerAct.setChecked(False) |
|
3765 self.astViewerAct.toggled[bool].connect(self.__astViewer) |
|
3766 self.viewActions.append(self.astViewerAct) |
|
3767 |
3748 self.viewActGrp.setEnabled(False) |
3768 self.viewActGrp.setEnabled(False) |
3749 self.viewFoldActGrp.setEnabled(False) |
3769 self.viewFoldActGrp.setEnabled(False) |
3750 self.unhighlightAct.setEnabled(False) |
3770 self.unhighlightAct.setEnabled(False) |
3751 self.splitViewAct.setEnabled(False) |
3771 self.splitViewAct.setEnabled(False) |
3752 self.splitOrientationAct.setEnabled(False) |
3772 self.splitOrientationAct.setEnabled(False) |
3753 self.splitRemoveAct.setEnabled(False) |
3773 self.splitRemoveAct.setEnabled(False) |
3754 self.nextSplitAct.setEnabled(False) |
3774 self.nextSplitAct.setEnabled(False) |
3755 self.prevSplitAct.setEnabled(False) |
3775 self.prevSplitAct.setEnabled(False) |
3756 self.previewAct.setEnabled(True) |
3776 self.previewAct.setEnabled(True) |
|
3777 self.astViewerAct.setEnabled(False) |
3757 self.newDocumentViewAct.setEnabled(False) |
3778 self.newDocumentViewAct.setEnabled(False) |
3758 self.newDocumentSplitViewAct.setEnabled(False) |
3779 self.newDocumentSplitViewAct.setEnabled(False) |
3759 |
3780 |
3760 self.splitOrientationAct.setChecked( |
3781 self.splitOrientationAct.setChecked( |
3761 Preferences.getUI("SplitOrientationVertical")) |
3782 Preferences.getUI("SplitOrientationVertical")) |
3772 menu.addActions(self.viewActGrp.actions()) |
3793 menu.addActions(self.viewActGrp.actions()) |
3773 menu.addSeparator() |
3794 menu.addSeparator() |
3774 menu.addActions(self.viewFoldActGrp.actions()) |
3795 menu.addActions(self.viewFoldActGrp.actions()) |
3775 menu.addSeparator() |
3796 menu.addSeparator() |
3776 menu.addAction(self.previewAct) |
3797 menu.addAction(self.previewAct) |
|
3798 menu.addAction(self.astViewerAct) |
3777 menu.addSeparator() |
3799 menu.addSeparator() |
3778 menu.addAction(self.unhighlightAct) |
3800 menu.addAction(self.unhighlightAct) |
3779 menu.addSeparator() |
3801 menu.addSeparator() |
3780 menu.addAction(self.newDocumentViewAct) |
3802 menu.addAction(self.newDocumentViewAct) |
3781 if self.canSplit(): |
3803 if self.canSplit(): |
3804 tb.setToolTip(QCoreApplication.translate('ViewManager', 'View')) |
3826 tb.setToolTip(QCoreApplication.translate('ViewManager', 'View')) |
3805 |
3827 |
3806 tb.addActions(self.viewActGrp.actions()) |
3828 tb.addActions(self.viewActGrp.actions()) |
3807 tb.addSeparator() |
3829 tb.addSeparator() |
3808 tb.addAction(self.previewAct) |
3830 tb.addAction(self.previewAct) |
|
3831 tb.addAction(self.astViewerAct) |
3809 tb.addSeparator() |
3832 tb.addSeparator() |
3810 tb.addAction(self.newDocumentViewAct) |
3833 tb.addAction(self.newDocumentViewAct) |
3811 if self.canSplit(): |
3834 if self.canSplit(): |
3812 tb.addAction(self.newDocumentSplitViewAct) |
3835 tb.addAction(self.newDocumentSplitViewAct) |
3813 |
3836 |
6145 |
6168 |
6146 @param checked state of the action (boolean) |
6169 @param checked state of the action (boolean) |
6147 """ |
6170 """ |
6148 Preferences.setUI("ShowFilePreview", checked) |
6171 Preferences.setUI("ShowFilePreview", checked) |
6149 self.previewStateChanged.emit(checked) |
6172 self.previewStateChanged.emit(checked) |
|
6173 |
|
6174 def __astViewer(self, checked): |
|
6175 """ |
|
6176 Private slot to handle a change of the AST Viewer selection state. |
|
6177 |
|
6178 @param checked state of the action (boolean) |
|
6179 """ |
|
6180 self.astViewerStateChanged.emit(checked) |
6150 |
6181 |
6151 ################################################################## |
6182 ################################################################## |
6152 ## Below are the action methods for the macro menu |
6183 ## Below are the action methods for the macro menu |
6153 ################################################################## |
6184 ################################################################## |
6154 |
6185 |
6614 self.newDocumentViewAct.setEnabled(False) |
6645 self.newDocumentViewAct.setEnabled(False) |
6615 self.newDocumentSplitViewAct.setEnabled(False) |
6646 self.newDocumentSplitViewAct.setEnabled(False) |
6616 self.splitViewAct.setEnabled(False) |
6647 self.splitViewAct.setEnabled(False) |
6617 self.splitOrientationAct.setEnabled(False) |
6648 self.splitOrientationAct.setEnabled(False) |
6618 self.previewAct.setEnabled(True) |
6649 self.previewAct.setEnabled(True) |
|
6650 self.astViewerAct.setEnabled(False) |
6619 self.macroActGrp.setEnabled(False) |
6651 self.macroActGrp.setEnabled(False) |
6620 self.bookmarkActGrp.setEnabled(False) |
6652 self.bookmarkActGrp.setEnabled(False) |
6621 self.__enableSpellingActions() |
6653 self.__enableSpellingActions() |
6622 self.__setSbFile(zoom=0) |
6654 self.__setSbFile(zoom=0) |
6623 |
6655 |
6631 self.autosaveTimer.stop() |
6663 self.autosaveTimer.stop() |
6632 |
6664 |
6633 # hide search and replace widgets |
6665 # hide search and replace widgets |
6634 self.__searchWidget.hide() |
6666 self.__searchWidget.hide() |
6635 self.__replaceWidget.hide() |
6667 self.__replaceWidget.hide() |
|
6668 |
|
6669 # hide the AST Viewer via its action |
|
6670 self.astViewerAct.setChecked(False) |
6636 |
6671 |
6637 def __editorOpened(self): |
6672 def __editorOpened(self): |
6638 """ |
6673 """ |
6639 Private slot to handle the editorOpened signal. |
6674 Private slot to handle the editorOpened signal. |
6640 """ |
6675 """ |
6656 self.splitViewAct.setEnabled(True) |
6691 self.splitViewAct.setEnabled(True) |
6657 self.splitOrientationAct.setEnabled(True) |
6692 self.splitOrientationAct.setEnabled(True) |
6658 self.macroActGrp.setEnabled(True) |
6693 self.macroActGrp.setEnabled(True) |
6659 self.bookmarkActGrp.setEnabled(True) |
6694 self.bookmarkActGrp.setEnabled(True) |
6660 self.__enableSpellingActions() |
6695 self.__enableSpellingActions() |
|
6696 self.astViewerAct.setEnabled(True) |
6661 |
6697 |
6662 # activate the autosave timer |
6698 # activate the autosave timer |
6663 if not self.autosaveTimer.isActive() and \ |
6699 if not self.autosaveTimer.isActive() and \ |
6664 self.autosaveInterval > 0: |
6700 self.autosaveInterval > 0: |
6665 self.autosaveTimer.start(self.autosaveInterval * 60000) |
6701 self.autosaveTimer.start(self.autosaveInterval * 60000) |