Sun, 04 Nov 2012 10:40:43 +0100
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2 | |
1509
c0b5e693b0eb
Updated copyright for 2012.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1507
diff
changeset
|
3 | # Copyright (c) 2002 - 2012 Detlev Offenbach <detlev@die-offenbachs.de> |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4 | # |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7 | Module implementing the editor component of the eric5 IDE. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
8 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
9 | import os |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
10 | import re |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
11 | import difflib |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
12 | |
1112
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1106
diff
changeset
|
13 | from PyQt4.QtCore import QDir, QTimer, QModelIndex, QFileInfo, pyqtSignal, \ |
1768
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
14 | pyqtSlot, QCryptographicHash, QEvent, QDateTime, QRegExp, Qt |
1112
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1106
diff
changeset
|
15 | from PyQt4.QtGui import QCursor, QPrinter, QPrintDialog, QLineEdit, QActionGroup, \ |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
16 | QDialog, QAbstractPrintDialog, QInputDialog, QApplication, QMenu, QPalette, QFont, \ |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
17 | QPixmap, QPainter |
1112
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1106
diff
changeset
|
18 | from PyQt4.Qsci import QsciScintilla, QsciMacro, QsciStyledText |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
19 | |
2084
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2077
diff
changeset
|
20 | from E5Gui.E5Application import e5App |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
21 | from E5Gui import E5FileDialog, E5MessageBox |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
22 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
23 | from . import Exporters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
24 | from . import Lexers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
25 | from . import TypingCompleters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
26 | from .QsciScintillaCompat import QsciScintillaCompat, QSCINTILLA_VERSION |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
27 | from .SpellChecker import SpellChecker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
28 | from .SpellCheckingDialog import SpellCheckingDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
29 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
30 | from Debugger.EditBreakpointDialog import EditBreakpointDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
31 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
32 | from DebugClients.Python3.coverage import coverage |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
33 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
34 | from DataViews.CodeMetricsDialog import CodeMetricsDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
35 | from DataViews.PyCoverageDialog import PyCoverageDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
36 | from DataViews.PyProfileDialog import PyProfileDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
37 | |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
38 | from Tasks.Task import Task |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
39 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
40 | from .Printer import Printer |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
41 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
42 | import Preferences |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
43 | import Utilities |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
44 | from Utilities.py3flakes.checker import Checker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
45 | from Utilities.py3flakes.messages import ImportStarUsed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
46 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
47 | import UI.PixmapCache |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
48 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
49 | EditorAutoCompletionListID = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
50 | TemplateCompletionListID = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
51 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
52 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
53 | class Editor(QsciScintillaCompat): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
54 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
55 | Class implementing the editor component of the eric5 IDE. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
56 | |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
57 | @signal modificationStatusChanged(bool, QsciScintillaCompat) emitted when the |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
58 | modification status has changed |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
59 | @signal undoAvailable(bool) emitted to signal the undo availability |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
60 | @signal redoAvailable(bool) emitted to signal the redo availability |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
61 | @signal cursorChanged(str, int, int) emitted when the cursor position |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
62 | was changed |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
63 | @signal editorAboutToBeSaved(str) emitted before the editor is saved |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
64 | @signal editorSaved(str) emitted after the editor has been saved |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
65 | @signal editorRenamed(str) emitted after the editor got a new name |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
66 | (i.e. after a 'Save As') |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
67 | @signal captionChanged(str, QsciScintillaCompat) emitted when the caption is |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
68 | updated. Typically due to a readOnly attribute change. |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
69 | @signal breakpointToggled(QsciScintillaCompat) emitted when a breakpoint is toggled |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
70 | @signal bookmarkToggled(QsciScintillaCompat) emitted when a bookmark is toggled |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
71 | @signal syntaxerrorToggled(QsciScintillaCompat) emitted when a syntax error |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
72 | was discovered |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
73 | @signal autoCompletionAPIsAvailable(bool) emitted after the autocompletion |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
74 | function has been configured |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
75 | @signal coverageMarkersShown(bool) emitted after the coverage markers have been |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
76 | shown or cleared |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
77 | @signal taskMarkersUpdated(QsciScintillaCompat) emitted when the task markers |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
78 | were updated |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
79 | @signal changeMarkersUpdated(QsciScintillaCompat) emitted when the change markers |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
80 | were updated |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
81 | @signal showMenu(str, QMenu, QsciScintillaCompat) emitted when a menu is about |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
82 | to be shown. The name of the menu, a reference to the menu and a reference |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
83 | to the editor are given. |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
84 | @signal languageChanged(str) emitted when the editors language was set. The |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
85 | language is passed as a parameter. |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
86 | @signal eolChanged(str) emitted when the editors eol type was set. The eol string |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
87 | is passed as a parameter. |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
88 | @signal encodingChanged(str) emitted when the editors encoding was set. The |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
89 | encoding name is passed as a parameter. |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
90 | @signal lastEditPositionAvailable() emitted when a last edit position is available |
1807
9898a95461f1
Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1768
diff
changeset
|
91 | @signal refreshed() emitted to signal a refresh of the editor contents |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
92 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
93 | modificationStatusChanged = pyqtSignal(bool, QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
94 | undoAvailable = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
95 | redoAvailable = pyqtSignal(bool) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
96 | cursorChanged = pyqtSignal(str, int, int) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
97 | editorAboutToBeSaved = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
98 | editorSaved = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
99 | editorRenamed = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
100 | captionChanged = pyqtSignal(str, QsciScintillaCompat) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
101 | breakpointToggled = pyqtSignal(QsciScintillaCompat) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
102 | bookmarkToggled = pyqtSignal(QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
103 | syntaxerrorToggled = pyqtSignal(QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
104 | autoCompletionAPIsAvailable = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
105 | coverageMarkersShown = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
106 | taskMarkersUpdated = pyqtSignal(QsciScintillaCompat) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
107 | changeMarkersUpdated = pyqtSignal(QsciScintillaCompat) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
108 | showMenu = pyqtSignal(str, QMenu, QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
109 | languageChanged = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
110 | eolChanged = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
111 | encodingChanged = pyqtSignal(str) |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
112 | lastEditPositionAvailable = pyqtSignal() |
1807
9898a95461f1
Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1768
diff
changeset
|
113 | refreshed = pyqtSignal() |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
114 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
115 | # Autocompletion icon definitions |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
116 | ClassID = 1 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
117 | ClassProtectedID = 2 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
118 | ClassPrivateID = 3 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
119 | MethodID = 4 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
120 | MethodProtectedID = 5 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
121 | MethodPrivateID = 6 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
122 | AttributeID = 7 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
123 | AttributeProtectedID = 8 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
124 | AttributePrivateID = 9 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
125 | EnumID = 10 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
126 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
127 | FromDocumentID = 99 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
128 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
129 | TemplateImageID = 100 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
130 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
131 | # Cooperation related definitions |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
132 | Separator = "@@@" |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
133 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
134 | StartEditToken = "START_EDIT" |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
135 | EndEditToken = "END_EDIT" |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
136 | CancelEditToken = "CANCEL_EDIT" |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
137 | RequestSyncToken = "REQUEST_SYNC" |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
138 | SyncToken = "SYNC" |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
139 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
140 | def __init__(self, dbs, fn=None, vm=None, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
141 | filetype="", editor=None, tv=None): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
142 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
143 | Constructor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
144 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
145 | @param dbs reference to the debug server object |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
146 | @param fn name of the file to be opened (string). If it is None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
147 | a new (empty) editor is opened |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
148 | @param vm reference to the view manager object (ViewManager.ViewManager) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
149 | @param filetype type of the source file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
150 | @param editor reference to an Editor object, if this is a cloned view |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
151 | @param tv reference to the task viewer object |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
152 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
153 | super().__init__() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
154 | self.setAttribute(Qt.WA_DeleteOnClose) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
155 | self.setAttribute(Qt.WA_KeyCompression) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
156 | self.setUtf8(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
157 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
158 | self.dbs = dbs |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
159 | self.taskViewer = tv |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
160 | self.fileName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
161 | self.vm = vm |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
162 | self.filetype = filetype |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
163 | self.filetypeByFlag = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
164 | self.noName = "" |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
165 | self.project = e5App().getObject("Project") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
166 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
167 | # clear some variables |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
168 | self.lastHighlight = None # remember the last highlighted line |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
169 | self.lastErrorMarker = None # remember the last error line |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
170 | self.lastCurrMarker = None # remember the last current line |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
171 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
172 | self.breaks = {} # key: marker handle, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
173 | # value: (lineno, condition, temporary, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
174 | # enabled, ignorecount) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
175 | self.bookmarks = [] # bookmarks are just a list of handles to the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
176 | # bookmark markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
177 | self.syntaxerrors = {} # key: marker handle |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
178 | # value: error message, error index |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
179 | self.warnings = {} # key: marker handle |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
180 | # value: list of warning messages |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
181 | self.notcoveredMarkers = [] # just a list of marker handles |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
182 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
183 | self.condHistory = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
184 | self.lexer_ = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
185 | self.__lexerReset = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
186 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
187 | self.encoding = Preferences.getEditor("DefaultEncoding") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
188 | self.apiLanguage = '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
189 | self.lastModified = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
190 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
191 | self.inReopenPrompt = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
192 | # true if the prompt to reload a changed source is present |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
193 | self.inFileRenamed = False # true if we are propagating a rename action |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
194 | self.inLanguageChanged = False # true if we are propagating a language change |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
195 | self.inEolChanged = False # true if we are propagating an eol change |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
196 | self.inEncodingChanged = False # true if we are propagating an encoding change |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
197 | self.inDragDrop = False # true if we are in drop mode |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
198 | self.inLinesChanged = False # true if we are propagating a lines changed event |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
199 | self.__hasTaskMarkers = False # no task markers present |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
200 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
201 | self.macros = {} # list of defined macros |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
202 | self.curMacro = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
203 | self.recording = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
204 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
205 | self.acAPI = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
206 | |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
207 | self.__lastEditPosition = None |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
208 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
209 | # list of clones |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
210 | self.__clones = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
211 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
212 | # clear QScintilla defined keyboard commands |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
213 | # we do our own handling through the view manager |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
214 | self.clearAlternateKeys() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
215 | self.clearKeys() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
216 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
217 | # initialize the mark occurrences timer |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
218 | self.__markOccurrencesTimer = QTimer(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
219 | self.__markOccurrencesTimer.setSingleShot(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
220 | self.__markOccurrencesTimer.setInterval( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
221 | Preferences.getEditor("MarkOccurrencesTimeout")) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
222 | self.__markOccurrencesTimer.timeout.connect(self.__markOccurrences) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
223 | self.__markedText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
224 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
225 | # initialize some spellchecking stuff |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
226 | self.spell = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
227 | self.lastLine = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
228 | self.lastIndex = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
229 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
230 | # initialize some cooperation stuff |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
231 | self.__isSyncing = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
232 | self.__receivedWhileSyncing = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
233 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
234 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
235 | self.__isShared = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
236 | self.__inRemoteSharedEdit = False |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
237 | |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
238 | # connect signals before loading the text |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
239 | self.modificationChanged.connect(self.__modificationChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
240 | self.cursorPositionChanged.connect(self.__cursorPositionChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
241 | self.modificationAttempted.connect(self.__modificationReadOnly) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
242 | self.userListActivated.connect(self.__completionListSelected) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
243 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
244 | # margins layout |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
245 | if QSCINTILLA_VERSION() >= 0x020301: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
246 | self.__unifiedMargins = Preferences.getEditor("UnifiedMargins") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
247 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
248 | self.__unifiedMargins = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
249 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
250 | # define the margins markers |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
251 | self.__changeMarkerSaved = self.markerDefine(self.__createChangeMarkerPixmap( |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
252 | "OnlineChangeTraceMarkerSaved")) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
253 | self.__changeMarkerUnsaved = self.markerDefine(self.__createChangeMarkerPixmap( |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
254 | "OnlineChangeTraceMarkerUnsaved")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
255 | self.breakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
256 | self.markerDefine(UI.PixmapCache.getPixmap("break.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
257 | self.cbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
258 | self.markerDefine(UI.PixmapCache.getPixmap("cBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
259 | self.tbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
260 | self.markerDefine(UI.PixmapCache.getPixmap("tBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
261 | self.tcbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
262 | self.markerDefine(UI.PixmapCache.getPixmap("tCBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
263 | self.dbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
264 | self.markerDefine(UI.PixmapCache.getPixmap("breakDisabled.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
265 | self.bookmark = \ |
1106
3e57cd52e0f6
Added icons to the Mercurial extensions menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1063
diff
changeset
|
266 | self.markerDefine(UI.PixmapCache.getPixmap("bookmark16.png")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
267 | self.syntaxerror = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
268 | self.markerDefine(UI.PixmapCache.getPixmap("syntaxError.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
269 | self.notcovered = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
270 | self.markerDefine(UI.PixmapCache.getPixmap("notcovered.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
271 | self.taskmarker = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
272 | self.markerDefine(UI.PixmapCache.getPixmap("task.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
273 | self.warning = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
274 | self.markerDefine(UI.PixmapCache.getPixmap("warning.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
275 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
276 | # define the line markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
277 | self.currentline = self.markerDefine(QsciScintilla.Background) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
278 | self.errorline = self.markerDefine(QsciScintilla.Background) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
279 | self.__setLineMarkerColours() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
280 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
281 | self.breakpointMask = (1 << self.breakpoint) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
282 | (1 << self.cbreakpoint) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
283 | (1 << self.tbreakpoint) | \ |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
284 | (1 << self.tcbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
285 | (1 << self.dbreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
286 | |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
287 | self.changeMarkersMask = (1 << self.__changeMarkerSaved) | \ |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
288 | (1 << self.__changeMarkerUnsaved) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
289 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
290 | # configure the margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
291 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
292 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
293 | self.marginClicked.connect(self.__marginClicked) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
294 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
295 | # set the eol mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
296 | self.__setEolMode() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
297 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
298 | # set the text display |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
299 | self.__setTextDisplay() |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
300 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
301 | self.isResourcesFile = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
302 | if editor is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
303 | if self.fileName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
304 | if (QFileInfo(self.fileName).size() // 1024) > \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
305 | Preferences.getEditor("WarnFilesize"): |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
306 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
307 | self.trUtf8("Open File"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
308 | self.trUtf8("""<p>The size of the file <b>{0}</b>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
309 | """ is <b>{1} KB</b>.""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
310 | """ Do you really want to load it?</p>""")\ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
311 | .format(self.fileName, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
312 | QFileInfo(self.fileName).size() // 1024), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
313 | icon=E5MessageBox.Warning) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
314 | if not res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
315 | raise IOError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
316 | self.readFile(self.fileName, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
317 | bindName = self.__bindName(self.text(0)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
318 | self.__bindLexer(bindName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
319 | self.__bindCompleter(bindName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
320 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
321 | self.isResourcesFile = self.fileName.endswith(".qrc") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
322 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
323 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
324 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
325 | # clone the given editor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
326 | self.setDocument(editor.document()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
327 | self.breaks = editor.breaks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
328 | self.bookmarks = editor.bookmarks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
329 | self.syntaxerrors = editor.syntaxerrors |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
330 | self.notcoveredMarkers = editor.notcoveredMarkers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
331 | self.isResourcesFile = editor.isResourcesFile |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
332 | self.lastModified = editor.lastModified |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
333 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
334 | self.addClone(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
335 | editor.addClone(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
336 | |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
337 | self.gotoLine(1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
338 | |
741
137cc6344b48
Fixed an issue in the Editor class introduced by the annotation job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
730
diff
changeset
|
339 | # set the text display again |
137cc6344b48
Fixed an issue in the Editor class introduced by the annotation job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
730
diff
changeset
|
340 | self.__setTextDisplay() |
137cc6344b48
Fixed an issue in the Editor class introduced by the annotation job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
730
diff
changeset
|
341 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
342 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
343 | self.__acHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
344 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
345 | self.__ctHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
346 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
347 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
348 | sh = self.sizeHint() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
349 | if sh.height() < 300: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
350 | sh.setHeight(300) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
351 | self.resize(sh) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
352 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
353 | # Make sure tabbing through a QWorkspace works. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
354 | self.setFocusPolicy(Qt.StrongFocus) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
355 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
356 | self.__updateReadOnly(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
357 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
358 | self.setWhatsThis(self.trUtf8( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
359 | """<b>A Source Editor Window</b>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
360 | """<p>This window is used to display and edit a source file.""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
361 | """ You can open as many of these as you like. The name of the file""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
362 | """ is displayed in the window's titlebar.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
363 | """<p>In order to set breakpoints just click in the space between""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
364 | """ the line numbers and the fold markers. Via the context menu""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
365 | """ of the margins they may be edited.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
366 | """<p>In order to set bookmarks just Shift click in the space between""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
367 | """ the line numbers and the fold markers.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
368 | """<p>These actions can be reversed via the context menu.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
369 | """<p>Ctrl clicking on a syntax error marker shows some info""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
370 | """ about this error.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
371 | )) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
372 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
373 | # Set the editors size, if it is too big for the view manager. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
374 | if self.vm is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
375 | req = self.size() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
376 | bnd = req.boundedTo(self.vm.size()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
377 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
378 | if bnd.width() < req.width() or bnd.height() < req.height(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
379 | self.resize(bnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
380 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
381 | # set the autosave flag |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
382 | self.autosaveEnabled = Preferences.getEditor("AutosaveInterval") > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
383 | self.autosaveManuallyDisabled = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
384 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
385 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
386 | self.__initContextMenuMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
387 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
388 | self.__checkEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
389 | if editor is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
390 | self.__checkLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
391 | self.__checkEncoding() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
392 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
393 | # it's a clone |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
394 | self.__languageChanged(editor.apiLanguage, propagate=False) |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
395 | self.__encodingChanged(editor.encoding, propagate=False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
396 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
397 | self.__coverageMarkersShown = False # flag remembering the current status of the |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
398 | # code coverage markers |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
399 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
400 | self.setAcceptDrops(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
401 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
402 | # breakpoint handling |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
403 | self.breakpointModel = self.dbs.getBreakPointModel() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
404 | self.__restoreBreakpoints() |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
405 | self.breakpointModel.rowsAboutToBeRemoved.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
406 | self.__deleteBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
407 | self.breakpointModel.dataAboutToBeChanged.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
408 | self.__breakPointDataAboutToBeChanged) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
409 | self.breakpointModel.dataChanged.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
410 | self.__changeBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
411 | self.breakpointModel.rowsInserted.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
412 | self.__addBreakPoints) |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
413 | self.SCN_MODIFIED.connect(self.__modified) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
414 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
415 | # establish connection to some ViewManager action groups |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
416 | self.addActions(self.vm.editorActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
417 | self.addActions(self.vm.editActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
418 | self.addActions(self.vm.copyActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
419 | self.addActions(self.vm.viewActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
420 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
421 | # register images to be shown in autocompletion lists |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
422 | self.__registerImages() |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
423 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
424 | # connect signals after loading the text |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
425 | self.textChanged.connect(self.__textChanged) |
1353
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
426 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
427 | # initialize the online syntax check timer |
1353
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
428 | self.__initOnlineSyntaxCheck() |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
429 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
430 | # initialize the online change trace timer |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
431 | self.__initOnlineChangeTrace() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
432 | |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
433 | if self.fileName and \ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
434 | self.project.isOpen() and \ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
435 | self.project.isProjectSource(self.fileName): |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
436 | self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged) |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
437 | |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
438 | self.grabGesture(Qt.PinchGesture) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
439 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
440 | def __registerImages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
441 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
442 | Private method to register images for autocompletion lists. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
443 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
444 | self.registerImage(self.ClassID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
445 | UI.PixmapCache.getPixmap("class.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
446 | self.registerImage(self.ClassProtectedID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
447 | UI.PixmapCache.getPixmap("class_protected.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
448 | self.registerImage(self.ClassPrivateID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
449 | UI.PixmapCache.getPixmap("class_private.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
450 | self.registerImage(self.MethodID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
451 | UI.PixmapCache.getPixmap("method.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
452 | self.registerImage(self.MethodProtectedID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
453 | UI.PixmapCache.getPixmap("method_protected.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
454 | self.registerImage(self.MethodPrivateID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
455 | UI.PixmapCache.getPixmap("method_private.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
456 | self.registerImage(self.AttributeID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
457 | UI.PixmapCache.getPixmap("attribute.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
458 | self.registerImage(self.AttributeProtectedID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
459 | UI.PixmapCache.getPixmap("attribute_protected.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
460 | self.registerImage(self.AttributePrivateID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
461 | UI.PixmapCache.getPixmap("attribute_private.png")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
462 | self.registerImage(self.EnumID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
463 | UI.PixmapCache.getPixmap("enum.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
464 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
465 | self.registerImage(self.FromDocumentID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
466 | UI.PixmapCache.getPixmap("editor.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
467 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
468 | self.registerImage(self.TemplateImageID, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
469 | UI.PixmapCache.getPixmap("templateViewer.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
470 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
471 | def addClone(self, editor): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
472 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
473 | Public method to add a clone to our list. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
474 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
475 | @param clone reference to the cloned editor (Editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
476 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
477 | self.__clones.append(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
478 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
479 | editor.editorRenamed.connect(self.fileRenamed) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
480 | editor.languageChanged.connect(self.languageChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
481 | editor.eolChanged.connect(self.__eolChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
482 | editor.encodingChanged.connect(self.__encodingChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
483 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
484 | def removeClone(self, editor): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
485 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
486 | Public method to remove a clone from our list. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
487 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
488 | @param clone reference to the cloned editor (Editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
489 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
490 | if editor in self.__clones: |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
491 | editor.editorRenamed.disconnect(self.fileRenamed) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
492 | editor.languageChanged.disconnect(self.languageChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
493 | editor.eolChanged.disconnect(self.__eolChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
494 | editor.encodingChanged.disconnect(self.__encodingChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
495 | self.__clones.remove(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
496 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
497 | def __bindName(self, line0): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
498 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
499 | Private method to generate a dummy filename for binding a lexer. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
500 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
501 | @param line0 first line of text to use in the generation process (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
502 | """ |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
503 | bindName = "" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
504 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
505 | if line0.startswith("<?xml"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
506 | # override extension for XML files |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
507 | bindName = "dummy.xml" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
508 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
509 | # check filetype |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
510 | if not bindName and self.filetype: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
511 | if self.filetype in ["Python", "Python2"]: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
512 | bindName = "dummy.py" |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
513 | elif self.filetype == "Python3": |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
514 | bindName = "dummy.py" |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
515 | elif self.filetype == "Ruby": |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
516 | bindName = "dummy.rb" |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
517 | elif self.filetype == "D": |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
518 | bindName = "dummy.d" |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
519 | elif self.filetype == "Properties": |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
520 | bindName = "dummy.ini" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
521 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
522 | # #! marker detection |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
523 | if not bindName and line0.startswith("#!"): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
524 | if "python3" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
525 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
526 | self.filetype = "Python3" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
527 | elif "python2" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
528 | bindName = "dummy.py" |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
529 | self.filetype = "Python2" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
530 | elif "python" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
531 | bindName = "dummy.py" |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
532 | self.filetype = "Python2" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
533 | elif ("/bash" in line0 or "/sh" in line0): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
534 | bindName = "dummy.sh" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
535 | elif "ruby" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
536 | bindName = "dummy.rb" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
537 | self.filetype = "Ruby" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
538 | elif "perl" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
539 | bindName = "dummy.pl" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
540 | elif "lua" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
541 | bindName = "dummy.lua" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
542 | elif "dmd" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
543 | bindName = "dummy.d" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
544 | self.filetype = "D" |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
545 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
546 | if not bindName: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
547 | bindName = self.fileName |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
548 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
549 | return bindName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
550 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
551 | def getMenu(self, menuName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
552 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
553 | Public method to get a reference to the main context menu or a submenu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
554 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
555 | @param menuName name of the menu (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
556 | @return reference to the requested menu (QMenu) or None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
557 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
558 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
559 | return self.__menus[menuName] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
560 | except KeyError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
561 | return None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
562 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
563 | def hasMiniMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
564 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
565 | Public method to check the miniMenu flag. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
566 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
567 | @return flag indicating a minimized context menu (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
568 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
569 | return self.miniMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
570 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
571 | def __initContextMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
572 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
573 | Private method used to setup the context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
574 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
575 | self.miniMenu = Preferences.getEditor("MiniContextMenu") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
576 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
577 | self.menuActs = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
578 | self.menu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
579 | self.__menus = { |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
580 | "Main": self.menu, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
581 | } |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
582 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
583 | self.languagesMenu = self.__initContextMenuLanguages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
584 | self.__menus["Languages"] = self.languagesMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
585 | if self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
586 | self.resourcesMenu = self.__initContextMenuResources() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
587 | self.__menus["Resources"] = self.resourcesMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
588 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
589 | self.checksMenu = self.__initContextMenuChecks() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
590 | self.menuShow = self.__initContextMenuShow() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
591 | self.graphicsMenu = self.__initContextMenuGraphics() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
592 | self.autocompletionMenu = self.__initContextMenuAutocompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
593 | self.__menus["Checks"] = self.checksMenu |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
594 | self.__menus["Show"] = self.menuShow |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
595 | self.__menus["Graphics"] = self.graphicsMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
596 | self.__menus["Autocompletion"] = self.autocompletionMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
597 | self.exportersMenu = self.__initContextMenuExporters() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
598 | self.__menus["Exporters"] = self.exportersMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
599 | self.eolMenu = self.__initContextMenuEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
600 | self.__menus["Eol"] = self.eolMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
601 | self.encodingsMenu = self.__initContextMenuEncodings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
602 | self.__menus["Encodings"] = self.encodingsMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
603 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
604 | self.menuActs["Undo"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
605 | self.menu.addAction(UI.PixmapCache.getIcon("editUndo.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
606 | self.trUtf8('Undo'), self.undo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
607 | self.menuActs["Redo"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
608 | self.menu.addAction(UI.PixmapCache.getIcon("editRedo.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
609 | self.trUtf8('Redo'), self.redo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
610 | self.menuActs["Revert"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
611 | self.menu.addAction(self.trUtf8("Revert to last saved state"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
612 | self.revertToUnmodified) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
613 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
614 | self.menuActs["Cut"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
615 | self.menu.addAction(UI.PixmapCache.getIcon("editCut.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
616 | self.trUtf8('Cut'), self.cut) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
617 | self.menuActs["Copy"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
618 | self.menu.addAction(UI.PixmapCache.getIcon("editCopy.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
619 | self.trUtf8('Copy'), self.copy) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
620 | self.menu.addAction(UI.PixmapCache.getIcon("editPaste.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
621 | self.trUtf8('Paste'), self.paste) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
622 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
623 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
624 | self.menu.addAction(UI.PixmapCache.getIcon("editIndent.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
625 | self.trUtf8('Indent'), self.indentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
626 | self.menu.addAction(UI.PixmapCache.getIcon("editUnindent.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
627 | self.trUtf8('Unindent'), self.unindentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
628 | self.menuActs["Comment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
629 | self.menu.addAction(UI.PixmapCache.getIcon("editComment.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
630 | self.trUtf8('Comment'), self.commentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
631 | self.menuActs["Uncomment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
632 | self.menu.addAction(UI.PixmapCache.getIcon("editUncomment.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
633 | self.trUtf8('Uncomment'), self.uncommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
634 | self.menuActs["StreamComment"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
635 | self.menu.addAction(self.trUtf8('Stream Comment'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
636 | self.streamCommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
637 | self.menuActs["BoxComment"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
638 | self.menu.addAction(self.trUtf8('Box Comment'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
639 | self.boxCommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
640 | self.menu.addSeparator() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
641 | self.menu.addAction(self.trUtf8('Select to brace'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
642 | self.selectToMatchingBrace) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
643 | self.menu.addAction(self.trUtf8('Select all'), self.__selectAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
644 | self.menu.addAction(self.trUtf8('Deselect all'), self.__deselectAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
645 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
646 | self.menuActs["SpellCheck"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
647 | self.menu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
648 | self.trUtf8('Check spelling...'), self.checkSpelling) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
649 | self.menuActs["SpellCheckSelection"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
650 | self.menu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
651 | self.trUtf8('Check spelling of selection...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
652 | self.__checkSpellingSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
653 | self.menuActs["SpellCheckRemove"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
654 | self.menu.addAction(self.trUtf8("Remove from dictionary"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
655 | self.__removeFromSpellingDictionary) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
656 | self.menu.addSeparator() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
657 | self.menu.addAction(self.trUtf8('Shorten empty lines'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
658 | self.shortenEmptyLines) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
659 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
660 | self.menuActs["Languages"] = self.menu.addMenu(self.languagesMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
661 | self.menuActs["Encodings"] = self.menu.addMenu(self.encodingsMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
662 | self.menuActs["Eol"] = self.menu.addMenu(self.eolMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
663 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
664 | self.menuActs["MonospacedFont"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
665 | self.menu.addAction(self.trUtf8("Use Monospaced Font"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
666 | self.handleMonospacedEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
667 | self.menuActs["MonospacedFont"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
668 | self.menuActs["MonospacedFont"].setChecked(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
669 | self.menuActs["AutosaveEnable"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
670 | self.menu.addAction(self.trUtf8("Autosave enabled"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
671 | self.__autosaveEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
672 | self.menuActs["AutosaveEnable"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
673 | self.menuActs["AutosaveEnable"].setChecked(self.autosaveEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
674 | self.menuActs["TypingAidsEnabled"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
675 | self.menu.addAction(self.trUtf8("Typing aids enabled"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
676 | self.__toggleTypingAids) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
677 | self.menuActs["TypingAidsEnabled"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
678 | self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
679 | self.menuActs["TypingAidsEnabled"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
680 | self.completer is not None and self.completer.isEnabled()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
681 | self.menuActs["AutoCompletionEnable"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
682 | self.menu.addAction(self.trUtf8("Autocompletion enabled"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
683 | self.__toggleAutoCompletionEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
684 | self.menuActs["AutoCompletionEnable"].setCheckable(True) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
685 | self.menuActs["AutoCompletionEnable"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
686 | self.autoCompletionThreshold() != -1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
687 | if not self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
688 | self.menu.addMenu(self.autocompletionMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
689 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
690 | if self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
691 | self.menu.addMenu(self.resourcesMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
692 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
693 | self.menuActs["Check"] = self.menu.addMenu(self.checksMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
694 | self.menu.addSeparator() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
695 | self.menuActs["Show"] = self.menu.addMenu(self.menuShow) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
696 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
697 | self.menuActs["Diagrams"] = self.menu.addMenu(self.graphicsMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
698 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
699 | self.menu.addAction(self.trUtf8('New view'), self.__newView) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
700 | act = self.menu.addAction(self.trUtf8('New view (with new split)'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
701 | self.__newViewNewSplit) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
702 | if not self.vm.canSplit(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
703 | act.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
704 | self.menu.addAction(UI.PixmapCache.getIcon("close.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
705 | self.trUtf8('Close'), self.__contextClose) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
706 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
707 | self.menuActs["Save"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
708 | self.menu.addAction(UI.PixmapCache.getIcon("fileSave.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
709 | self.trUtf8('Save'), self.__contextSave) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
710 | self.menu.addAction(UI.PixmapCache.getIcon("fileSaveAs.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
711 | self.trUtf8('Save As...'), self.__contextSaveAs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
712 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
713 | self.menu.addMenu(self.exportersMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
714 | self.menu.addSeparator() |
1299
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
715 | self.menuActs["OpenRejections"] = \ |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
716 | self.menu.addAction(self.trUtf8("Open 'rejection' file"), |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
717 | self.__contextOpenRejections) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
718 | self.menu.addSeparator() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
719 | self.menu.addAction(UI.PixmapCache.getIcon("printPreview.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
720 | self.trUtf8("Print Preview"), self.printPreviewFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
721 | self.menu.addAction(UI.PixmapCache.getIcon("print.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
722 | self.trUtf8('Print'), self.printFile) |
1299
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
723 | else: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
724 | self.menuActs["OpenRejections"] = None |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
725 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
726 | self.menu.aboutToShow.connect(self.__showContextMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
727 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
728 | self.spellingMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
729 | self.__menus["Spelling"] = self.spellingMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
730 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
731 | self.spellingMenu.aboutToShow.connect(self.__showContextMenuSpelling) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
732 | self.spellingMenu.triggered.connect(self.__contextMenuSpellingTriggered) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
733 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
734 | def __initContextMenuAutocompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
735 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
736 | Private method used to setup the Checks context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
737 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
738 | menu = QMenu(self.trUtf8('Autocomplete')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
739 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
740 | self.menuActs["acDynamic"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
741 | menu.addAction(self.trUtf8('dynamic'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
742 | self.autoComplete) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
743 | menu.addSeparator() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
744 | menu.addAction(self.trUtf8('from Document'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
745 | self.autoCompleteFromDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
746 | self.menuActs["acAPI"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
747 | menu.addAction(self.trUtf8('from APIs'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
748 | self.autoCompleteFromAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
749 | self.menuActs["acAPIDocument"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
750 | menu.addAction(self.trUtf8('from Document and APIs'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
751 | self.autoCompleteFromAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
752 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
753 | self.menuActs["calltip"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
754 | menu.addAction(self.trUtf8('Calltip'), self.callTip) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
755 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
756 | menu.aboutToShow.connect(self.__showContextMenuAutocompletion) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
757 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
758 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
759 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
760 | def __initContextMenuChecks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
761 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
762 | Private method used to setup the Checks context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
763 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
764 | menu = QMenu(self.trUtf8('Check')) |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
765 | menu.aboutToShow.connect(self.__showContextMenuChecks) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
766 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
767 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
768 | def __initContextMenuShow(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
769 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
770 | Private method used to setup the Show context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
771 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
772 | menu = QMenu(self.trUtf8('Show')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
773 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
774 | menu.addAction(self.trUtf8('Code metrics...'), self.__showCodeMetrics) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
775 | self.coverageMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
776 | menu.addAction(self.trUtf8('Code coverage...'), self.__showCodeCoverage) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
777 | self.coverageShowAnnotationMenuAct = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
778 | menu.addAction(self.trUtf8('Show code coverage annotations'), |
2163
2b02339f52bf
Enhanced the code coverage dialog functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2162
diff
changeset
|
779 | self.codeCoverageShowAnnotations) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
780 | self.coverageHideAnnotationMenuAct = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
781 | menu.addAction(self.trUtf8('Hide code coverage annotations'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
782 | self.__codeCoverageHideAnnotations) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
783 | self.profileMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
784 | menu.addAction(self.trUtf8('Profile data...'), self.__showProfileData) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
785 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
786 | menu.aboutToShow.connect(self.__showContextMenuShow) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
787 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
788 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
789 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
790 | def __initContextMenuGraphics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
791 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
792 | Private method used to setup the diagrams context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
793 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
794 | menu = QMenu(self.trUtf8('Diagrams')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
795 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
796 | menu.addAction(self.trUtf8('Class Diagram...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
797 | self.__showClassDiagram) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
798 | menu.addAction(self.trUtf8('Package Diagram...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
799 | self.__showPackageDiagram) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
800 | menu.addAction(self.trUtf8('Imports Diagram...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
801 | self.__showImportsDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
802 | self.applicationDiagramMenuAct = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
803 | menu.addAction(self.trUtf8('Application Diagram...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
804 | self.__showApplicationDiagram) |
2034
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
805 | menu.addSeparator() |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
806 | menu.addAction(UI.PixmapCache.getIcon("open.png"), |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
807 | self.trUtf8("Load Diagram..."), self.__loadDiagram) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
808 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
809 | menu.aboutToShow.connect(self.__showContextMenuGraphics) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
810 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
811 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
812 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
813 | def __initContextMenuLanguages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
814 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
815 | Private method used to setup the Languages context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
816 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
817 | menu = QMenu(self.trUtf8("Languages")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
818 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
819 | self.languagesActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
820 | self.noLanguageAct = menu.addAction(self.trUtf8("No Language")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
821 | self.noLanguageAct.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
822 | self.noLanguageAct.setData("None") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
823 | self.languagesActGrp.addAction(self.noLanguageAct) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
824 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
825 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
826 | self.supportedLanguages = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
827 | supportedLanguages = Lexers.getSupportedLanguages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
828 | languages = sorted(list(supportedLanguages.keys())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
829 | for language in languages: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
830 | if language != "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
831 | self.supportedLanguages[language] = supportedLanguages[language][:] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
832 | act = menu.addAction(self.supportedLanguages[language][0]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
833 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
834 | act.setData(language) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
835 | self.supportedLanguages[language].append(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
836 | self.languagesActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
837 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
838 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
839 | self.pygmentsAct = menu.addAction(self.trUtf8("Guessed")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
840 | self.pygmentsAct.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
841 | self.pygmentsAct.setData("Guessed") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
842 | self.languagesActGrp.addAction(self.pygmentsAct) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
843 | self.pygmentsSelAct = menu.addAction(self.trUtf8("Alternatives")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
844 | self.pygmentsSelAct.setData("Alternatives") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
845 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
846 | menu.triggered.connect(self.__languageMenuTriggered) |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
847 | menu.aboutToShow.connect(self.__showContextMenuLanguages) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
848 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
849 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
850 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
851 | def __initContextMenuEncodings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
852 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
853 | Private method used to setup the Encodings context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
854 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
855 | self.supportedEncodings = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
856 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
857 | menu = QMenu(self.trUtf8("Encodings")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
858 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
859 | self.encodingsActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
860 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
861 | for encoding in sorted(Utilities.supportedCodecs): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
862 | act = menu.addAction(encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
863 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
864 | act.setData(encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
865 | self.supportedEncodings[encoding] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
866 | self.encodingsActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
867 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
868 | menu.triggered.connect(self.__encodingsMenuTriggered) |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
869 | menu.aboutToShow.connect(self.__showContextMenuEncodings) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
870 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
871 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
872 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
873 | def __initContextMenuEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
874 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
875 | Private method to setup the eol context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
876 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
877 | self.supportedEols = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
878 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
879 | menu = QMenu(self.trUtf8("End-of-Line Type")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
880 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
881 | self.eolActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
882 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
883 | act = menu.addAction(self.trUtf8("Unix")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
884 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
885 | act.setData('\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
886 | self.supportedEols['\n'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
887 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
888 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
889 | act = menu.addAction(self.trUtf8("Windows")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
890 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
891 | act.setData('\r\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
892 | self.supportedEols['\r\n'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
893 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
894 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
895 | act = menu.addAction(self.trUtf8("Macintosh")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
896 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
897 | act.setData('\r') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
898 | self.supportedEols['\r'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
899 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
900 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
901 | menu.triggered.connect(self.__eolMenuTriggered) |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
902 | menu.aboutToShow.connect(self.__showContextMenuEol) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
903 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
904 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
905 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
906 | def __initContextMenuExporters(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
907 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
908 | Private method used to setup the Exporters context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
909 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
910 | menu = QMenu(self.trUtf8("Export as")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
911 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
912 | supportedExporters = Exporters.getSupportedFormats() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
913 | exporters = sorted(list(supportedExporters.keys())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
914 | for exporter in exporters: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
915 | act = menu.addAction(supportedExporters[exporter]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
916 | act.setData(exporter) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
917 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
918 | menu.triggered.connect(self.__exportMenuTriggered) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
919 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
920 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
921 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
922 | def __initContextMenuMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
923 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
924 | Private method used to setup the context menu for the margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
925 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
926 | self.marginMenuActs = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
927 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
928 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
929 | self.__initContextMenuUnifiedMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
930 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
931 | self.__initContextMenuSeparateMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
932 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
933 | def __initContextMenuSeparateMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
934 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
935 | Private method used to setup the context menu for the separated margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
936 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
937 | # bookmark margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
938 | self.bmMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
939 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
940 | self.bmMarginMenu.addAction(self.trUtf8('Toggle bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
941 | self.menuToggleBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
942 | self.marginMenuActs["NextBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
943 | self.bmMarginMenu.addAction(self.trUtf8('Next bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
944 | self.nextBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
945 | self.marginMenuActs["PreviousBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
946 | self.bmMarginMenu.addAction(self.trUtf8('Previous bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
947 | self.previousBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
948 | self.marginMenuActs["ClearBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
949 | self.bmMarginMenu.addAction(self.trUtf8('Clear all bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
950 | self.clearBookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
951 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
952 | self.bmMarginMenu.aboutToShow.connect(self.__showContextMenuMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
953 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
954 | # breakpoint margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
955 | self.bpMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
956 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
957 | self.marginMenuActs["Breakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
958 | self.bpMarginMenu.addAction(self.trUtf8('Toggle breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
959 | self.menuToggleBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
960 | self.marginMenuActs["TempBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
961 | self.bpMarginMenu.addAction(self.trUtf8('Toggle temporary breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
962 | self.__menuToggleTemporaryBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
963 | self.marginMenuActs["EditBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
964 | self.bpMarginMenu.addAction(self.trUtf8('Edit breakpoint...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
965 | self.menuEditBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
966 | self.marginMenuActs["EnableBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
967 | self.bpMarginMenu.addAction(self.trUtf8('Enable breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
968 | self.__menuToggleBreakpointEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
969 | self.marginMenuActs["NextBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
970 | self.bpMarginMenu.addAction(self.trUtf8('Next breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
971 | self.menuNextBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
972 | self.marginMenuActs["PreviousBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
973 | self.bpMarginMenu.addAction(self.trUtf8('Previous breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
974 | self.menuPreviousBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
975 | self.marginMenuActs["ClearBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
976 | self.bpMarginMenu.addAction(self.trUtf8('Clear all breakpoints'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
977 | self.__menuClearBreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
978 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
979 | self.bpMarginMenu.aboutToShow.connect(self.__showContextMenuMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
980 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
981 | # indicator margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
982 | self.indicMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
983 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
984 | self.marginMenuActs["GotoSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
985 | self.indicMarginMenu.addAction(self.trUtf8('Goto syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
986 | self.gotoSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
987 | self.marginMenuActs["ShowSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
988 | self.indicMarginMenu.addAction(self.trUtf8('Show syntax error message'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
989 | self.__showSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
990 | self.marginMenuActs["ClearSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
991 | self.indicMarginMenu.addAction(self.trUtf8('Clear syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
992 | self.clearSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
993 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
994 | self.marginMenuActs["NextWarningMarker"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
995 | self.indicMarginMenu.addAction(self.trUtf8("Next warning"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
996 | self.nextFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
997 | self.marginMenuActs["PreviousWarningMarker"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
998 | self.indicMarginMenu.addAction(self.trUtf8("Previous warning"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
999 | self.previousFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1000 | self.marginMenuActs["ShowWarning"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1001 | self.indicMarginMenu.addAction(self.trUtf8('Show warning message'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1002 | self.__showFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1003 | self.marginMenuActs["ClearWarnings"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1004 | self.indicMarginMenu.addAction(self.trUtf8('Clear warnings'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1005 | self.clearFlakesWarnings) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1006 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1007 | self.marginMenuActs["NextCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1008 | self.indicMarginMenu.addAction(self.trUtf8('Next uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1009 | self.nextUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1010 | self.marginMenuActs["PreviousCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1011 | self.indicMarginMenu.addAction(self.trUtf8('Previous uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1012 | self.previousUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1013 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1014 | self.marginMenuActs["NextTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1015 | self.indicMarginMenu.addAction(self.trUtf8('Next task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1016 | self.nextTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1017 | self.marginMenuActs["PreviousTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1018 | self.indicMarginMenu.addAction(self.trUtf8('Previous task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1019 | self.previousTask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1020 | self.indicMarginMenu.addSeparator() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1021 | self.marginMenuActs["NextChangeMarker"] = \ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1022 | self.indicMarginMenu.addAction(self.trUtf8('Next change'), |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1023 | self.nextChange) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1024 | self.marginMenuActs["PreviousChangeMarker"] = \ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1025 | self.indicMarginMenu.addAction(self.trUtf8('Previous change'), |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1026 | self.previousChange) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1027 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
1028 | self.indicMarginMenu.aboutToShow.connect(self.__showContextMenuMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1029 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1030 | def __initContextMenuUnifiedMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1031 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1032 | Private method used to setup the context menu for the unified margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1033 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1034 | self.marginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1035 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1036 | self.marginMenu.addAction(self.trUtf8('Toggle bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1037 | self.menuToggleBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1038 | self.marginMenuActs["NextBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1039 | self.marginMenu.addAction(self.trUtf8('Next bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1040 | self.nextBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1041 | self.marginMenuActs["PreviousBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1042 | self.marginMenu.addAction(self.trUtf8('Previous bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1043 | self.previousBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1044 | self.marginMenuActs["ClearBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1045 | self.marginMenu.addAction(self.trUtf8('Clear all bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1046 | self.clearBookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1047 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1048 | self.marginMenuActs["GotoSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1049 | self.marginMenu.addAction(self.trUtf8('Goto syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1050 | self.gotoSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1051 | self.marginMenuActs["ShowSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1052 | self.marginMenu.addAction(self.trUtf8('Show syntax error message'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1053 | self.__showSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1054 | self.marginMenuActs["ClearSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1055 | self.marginMenu.addAction(self.trUtf8('Clear syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1056 | self.clearSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1057 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1058 | self.marginMenuActs["NextWarningMarker"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1059 | self.marginMenu.addAction(self.trUtf8("Next warning"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1060 | self.nextFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1061 | self.marginMenuActs["PreviousWarningMarker"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1062 | self.marginMenu.addAction(self.trUtf8("Previous warning"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1063 | self.previousFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1064 | self.marginMenuActs["ShowWarning"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1065 | self.marginMenu.addAction(self.trUtf8('Show warning message'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1066 | self.__showFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1067 | self.marginMenuActs["ClearWarnings"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1068 | self.marginMenu.addAction(self.trUtf8('Clear warnings'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1069 | self.clearFlakesWarnings) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1070 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1071 | self.marginMenuActs["Breakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1072 | self.marginMenu.addAction(self.trUtf8('Toggle breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1073 | self.menuToggleBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1074 | self.marginMenuActs["TempBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1075 | self.marginMenu.addAction(self.trUtf8('Toggle temporary breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1076 | self.__menuToggleTemporaryBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1077 | self.marginMenuActs["EditBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1078 | self.marginMenu.addAction(self.trUtf8('Edit breakpoint...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1079 | self.menuEditBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1080 | self.marginMenuActs["EnableBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1081 | self.marginMenu.addAction(self.trUtf8('Enable breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1082 | self.__menuToggleBreakpointEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1083 | self.marginMenuActs["NextBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1084 | self.marginMenu.addAction(self.trUtf8('Next breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1085 | self.menuNextBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1086 | self.marginMenuActs["PreviousBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1087 | self.marginMenu.addAction(self.trUtf8('Previous breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1088 | self.menuPreviousBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1089 | self.marginMenuActs["ClearBreakpoint"] = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1090 | self.marginMenu.addAction(self.trUtf8('Clear all breakpoints'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1091 | self.__menuClearBreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1092 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1093 | self.marginMenuActs["NextCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1094 | self.marginMenu.addAction(self.trUtf8('Next uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1095 | self.nextUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1096 | self.marginMenuActs["PreviousCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1097 | self.marginMenu.addAction(self.trUtf8('Previous uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1098 | self.previousUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1099 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1100 | self.marginMenuActs["NextTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1101 | self.marginMenu.addAction(self.trUtf8('Next task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1102 | self.nextTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1103 | self.marginMenuActs["PreviousTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1104 | self.marginMenu.addAction(self.trUtf8('Previous task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1105 | self.previousTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1106 | self.marginMenu.addSeparator() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1107 | self.marginMenuActs["NextChangeMarker"] = \ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1108 | self.marginMenu.addAction(self.trUtf8('Next change'), |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1109 | self.nextChange) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1110 | self.marginMenuActs["PreviousChangeMarker"] = \ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1111 | self.marginMenu.addAction(self.trUtf8('Previous change'), |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1112 | self.previousChange) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1113 | self.marginMenu.addSeparator() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1114 | self.marginMenuActs["LMBbookmarks"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1115 | self.marginMenu.addAction(self.trUtf8('LMB toggles bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1116 | self.__lmBbookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1117 | self.marginMenuActs["LMBbookmarks"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1118 | self.marginMenuActs["LMBbookmarks"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1119 | self.marginMenuActs["LMBbreakpoints"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1120 | self.marginMenu.addAction(self.trUtf8('LMB toggles breakpoints'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1121 | self.__lmBbreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1122 | self.marginMenuActs["LMBbreakpoints"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1123 | self.marginMenuActs["LMBbreakpoints"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1124 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
1125 | self.marginMenu.aboutToShow.connect(self.__showContextMenuMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1126 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1127 | def __exportMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1128 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1129 | Private method to handle the selection of an export format. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1130 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1131 | @param act reference to the action that was triggered (QAction) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1132 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1133 | exporterFormat = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1134 | self.exportFile(exporterFormat) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1135 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1136 | def exportFile(self, exporterFormat): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1137 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1138 | Public method to export the file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1139 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1140 | @param exporterFormat format the file should be exported into (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1141 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1142 | if exporterFormat: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1143 | exporter = Exporters.getExporter(exporterFormat, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1144 | if exporter: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1145 | exporter.exportSource() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1146 | else: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
1147 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1148 | self.trUtf8("Export source"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1149 | self.trUtf8("""<p>No exporter available for the """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1150 | """export format <b>{0}</b>. Aborting...</p>""")\ |
535
4b00d7336e19
Streamlined the use of QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
520
diff
changeset
|
1151 | .format(exporterFormat)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1152 | else: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
1153 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1154 | self.trUtf8("Export source"), |
535
4b00d7336e19
Streamlined the use of QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
520
diff
changeset
|
1155 | self.trUtf8("""No export format given. Aborting...""")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1156 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1157 | def __showContextMenuLanguages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1158 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1159 | Private slot handling the aboutToShow signal of the languages context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1160 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1161 | if self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1162 | self.pygmentsSelAct.setText( |
812
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1163 | self.trUtf8("Alternatives ({0})").format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1164 | self.getLanguage(normalized=False))) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1165 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1166 | self.pygmentsSelAct.setText(self.trUtf8("Alternatives")) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1167 | self.showMenu.emit("Languages", self.languagesMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1168 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1169 | def __selectPygmentsLexer(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1170 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1171 | Private method to select a specific pygments lexer. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1172 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1173 | @return name of the selected pygments lexer (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1174 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1175 | from pygments.lexers import get_all_lexers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1176 | lexerList = sorted([l[0] for l in get_all_lexers()]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1177 | try: |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1178 | lexerSel = lexerList.index( |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1179 | self.getLanguage(normalized=False, forPygments=True)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1180 | except ValueError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1181 | lexerSel = 0 |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
1182 | lexerName, ok = QInputDialog.getItem( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1183 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1184 | self.trUtf8("Pygments Lexer"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1185 | self.trUtf8("Select the Pygments lexer to apply."), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1186 | lexerList, |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1187 | lexerSel, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1188 | False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1189 | if ok and lexerName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1190 | return lexerName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1191 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1192 | return "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1193 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1194 | def __languageMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1195 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1196 | Private method to handle the selection of a lexer language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1197 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1198 | @param act reference to the action that was triggered (QAction) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1199 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1200 | if act == self.noLanguageAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1201 | self.__resetLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1202 | elif act == self.pygmentsAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1203 | self.setLanguage("dummy.pygments") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1204 | elif act == self.pygmentsSelAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1205 | language = self.__selectPygmentsLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1206 | if language: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1207 | self.setLanguage("dummy.pygments", pyname=language) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1208 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1209 | language = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1210 | if language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1211 | self.setLanguage(self.supportedLanguages[language][1]) |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1212 | self.filetype = language |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1213 | self.__autoSyntaxCheck() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1214 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1215 | def __languageChanged(self, language, propagate=True): |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1216 | """ |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1217 | Private slot handling a change of a connected editor's language. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1218 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1219 | @param language language to be set (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1220 | @keyparam propagate flag indicating to propagate the change (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1221 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1222 | if language == '': |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1223 | self.__resetLanguage(propagate=propagate) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1224 | elif language == "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1225 | self.setLanguage("dummy.pygments") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1226 | elif language.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1227 | pyname = language.split("|", 1)[1] |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1228 | self.setLanguage("dummy.pygments", pyname=pyname) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1229 | else: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1230 | self.setLanguage(self.supportedLanguages[language][1], propagate=propagate) |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1231 | self.filetype = language |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1232 | self.__autoSyntaxCheck() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1233 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1234 | def __resetLanguage(self, propagate=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1235 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1236 | Private method used to reset the language selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1237 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1238 | @keyparam propagate flag indicating to propagate the change (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1239 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1240 | if self.lexer_ is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1241 | (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None): |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1242 | self.SCN_STYLENEEDED.disconnect(self.__styleNeeded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1243 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1244 | self.apiLanguage = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1245 | self.lexer_ = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1246 | self.__lexerReset = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1247 | self.setLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1248 | self.setMonospaced(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1249 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1250 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1251 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1252 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1253 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1254 | if not self.inLanguageChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1255 | self.inLanguageChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1256 | self.languageChanged.emit(self.apiLanguage) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1257 | self.inLanguageChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1258 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1259 | def setLanguage(self, filename, initTextDisplay=True, propagate=True, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1260 | pyname=""): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1261 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1262 | Public method to set a lexer language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1263 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1264 | @param filename filename used to determine the associated lexer language (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1265 | @param initTextDisplay flag indicating an initialization of the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1266 | is required as well (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1267 | @keyparam propagate flag indicating to propagate the change (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1268 | @keyparam pyname name of the pygments lexer to use (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1269 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1270 | self.__lexerReset = False |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1271 | self.__bindLexer(filename, pyname=pyname) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1272 | self.__bindCompleter(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1273 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1274 | self.__checkLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1275 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1276 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1277 | if initTextDisplay: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1278 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1279 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1280 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1281 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1282 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1283 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1284 | if not self.inLanguageChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1285 | self.inLanguageChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1286 | self.languageChanged.emit(self.apiLanguage) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1287 | self.inLanguageChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1288 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1289 | def __checkLanguage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1290 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1291 | Private method to check the selected language of the language submenu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1292 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1293 | if self.apiLanguage == "": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1294 | self.noLanguageAct.setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1295 | elif self.apiLanguage == "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1296 | self.pygmentsAct.setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1297 | elif self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1298 | act = self.languagesActGrp.checkedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1299 | if act: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1300 | act.setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1301 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1302 | self.supportedLanguages[self.apiLanguage][2].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1303 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1304 | def projectLexerAssociationsChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1305 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1306 | Public slot to handle changes of the project lexer associations. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1307 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1308 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1309 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1310 | def __showContextMenuEncodings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1311 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1312 | Private slot handling the aboutToShow signal of the encodings context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1313 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1314 | self.showMenu.emit("Encodings", self.encodingsMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1315 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1316 | def __encodingsMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1317 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1318 | Private method to handle the selection of an encoding. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1319 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1320 | @param act reference to the action that was triggered (QAction) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1321 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1322 | encoding = act.data() |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
1323 | self.__encodingChanged("{0}-selected".format(encoding)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1324 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1325 | def __checkEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1326 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1327 | Private method to check the selected encoding of the encodings submenu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1328 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1329 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1330 | self.supportedEncodings[self.__normalizedEncoding()].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1331 | except (AttributeError, KeyError): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1332 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1333 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1334 | def __encodingChanged(self, encoding, propagate=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1335 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1336 | Private slot to handle a change of the encoding. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1337 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1338 | @keyparam propagate flag indicating to propagate the change (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1339 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1340 | self.encoding = encoding |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1341 | self.__checkEncoding() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1342 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1343 | if not self.inEncodingChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1344 | self.inEncodingChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1345 | self.encodingChanged.emit(self.encoding) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1346 | self.inEncodingChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1347 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1348 | def __normalizedEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1349 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1350 | Private method to calculate the normalized encoding string. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1351 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1352 | @return normalized encoding (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1353 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1354 | return self.encoding.replace("-default", "")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1355 | .replace("-guessed", "")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1356 | .replace("-selected", "") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1357 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1358 | def __showContextMenuEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1359 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1360 | Private slot handling the aboutToShow signal of the eol context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1361 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1362 | self.showMenu.emit("Eol", self.eolMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1363 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1364 | def __eolMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1365 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1366 | Private method to handle the selection of an eol type. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1367 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1368 | @param act reference to the action that was triggered (QAction) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1369 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1370 | eol = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1371 | self.setEolModeByEolString(eol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1372 | self.convertEols(self.eolMode()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1373 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1374 | def __checkEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1375 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1376 | Private method to check the selected eol type of the eol submenu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1377 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1378 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1379 | self.supportedEols[self.getLineSeparator()].setChecked(True) |
875
606815a46bc0
Fixed a strange issue in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
832
diff
changeset
|
1380 | except (AttributeError, TypeError): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1381 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1382 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1383 | def __eolChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1384 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1385 | Private slot to handle a change of the eol mode. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1386 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1387 | self.__checkEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1388 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1389 | if not self.inEolChanged: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1390 | self.inEolChanged = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1391 | eol = self.getLineSeparator() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1392 | self.eolChanged.emit(eol) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1393 | self.inEolChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1394 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1395 | def __bindLexer(self, filename, pyname=""): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1396 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1397 | Private slot to set the correct lexer depending on language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1398 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1399 | @param filename filename used to determine the associated lexer language (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1400 | @keyparam pyname name of the pygments lexer to use (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1401 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1402 | if self.lexer_ is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1403 | (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None): |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1404 | self.SCN_STYLENEEDED.disconnect(self.__styleNeeded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1405 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1406 | language = "" |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
1407 | if self.project.isOpen() and self.project.isProjectFile(filename): |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
1408 | language = self.project.getEditorLexerAssoc(os.path.basename(filename)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1409 | if not language: |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1410 | ext = os.path.splitext(filename)[1] |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1411 | if ext in [".py", ".pyw"]: |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1412 | if self.isPy2File(): |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1413 | language = "Python2" |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1414 | elif self.isPy3File(): |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1415 | language = "Python3" |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1416 | else: |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1417 | # default is Python 3 |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1418 | language = "Python3" |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1419 | else: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1420 | filename = os.path.basename(filename) |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1421 | language = Preferences.getEditorLexerAssoc(filename) |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1422 | if language == "Python": |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1423 | # correction for Python |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1424 | if self.isPy2File(): |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1425 | language = "Python2" |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1426 | else: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1427 | language = "Python3" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1428 | if language.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1429 | pyname = language.split("|", 1)[1] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1430 | language = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1431 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1432 | self.lexer_ = Lexers.getLexer(language, self, pyname=pyname) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1433 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1434 | self.setLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1435 | self.apiLanguage = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1436 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1437 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1438 | if pyname: |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
1439 | self.apiLanguage = "Pygments|{0}".format(pyname) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1440 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1441 | self.apiLanguage = self.lexer_.language() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1442 | if self.apiLanguage == "POV": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1443 | self.apiLanguage = "Povray" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1444 | self.setLexer(self.lexer_) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1445 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1446 | if self.lexer_.lexer() == "container" or self.lexer_.lexer() is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1447 | self.setStyleBits(self.lexer_.styleBitsNeeded()) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1448 | self.SCN_STYLENEEDED.connect(self.__styleNeeded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1449 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1450 | # get the font for style 0 and set it as the default font |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
1451 | key = 'Scintilla/{0}/style0/font'.format(self.lexer_.language()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1452 | fdesc = Preferences.Prefs.settings.value(key) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1453 | if fdesc is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1454 | font = QFont(fdesc[0], int(fdesc[1])) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1455 | self.lexer_.setDefaultFont(font) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1456 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1457 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1458 | # now set the lexer properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1459 | self.lexer_.initProperties() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1460 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1461 | # initialize the lexer APIs settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1462 | api = self.vm.getAPIsManager().getAPIs(self.apiLanguage) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1463 | if api is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1464 | self.lexer_.setAPIs(api.getQsciAPIs()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1465 | self.acAPI = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1466 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1467 | self.acAPI = False |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1468 | self.autoCompletionAPIsAvailable.emit(self.acAPI) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1469 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
1470 | self.__setAnnotationStyles() |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
1471 | |
1566
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
1472 | self.lexer_.setDefaultColor(self.lexer_.color(0)) |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
1473 | self.lexer_.setDefaultPaper(self.lexer_.paper(0)) |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
1474 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1475 | def __styleNeeded(self, position): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1476 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1477 | Private slot to handle the need for more styling. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1478 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1479 | @param position end position, that needs styling (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1480 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1481 | self.lexer_.styleText(self.getEndStyled(), position) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1482 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1483 | def getLexer(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1484 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1485 | Public method to retrieve a reference to the lexer object. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1486 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1487 | @return the lexer object (Lexer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1488 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1489 | return self.lexer_ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1490 | |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1491 | def getLanguage(self, normalized=True, forPygments=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1492 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1493 | Public method to retrieve the language of the editor. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1494 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1495 | @keyparam normalized flag indicating to normalize some Pygments |
812
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1496 | lexer names (boolean) |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1497 | @keyparam forPygments flag indicating to normalize some lexer |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1498 | names for Pygments (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1499 | @return language of the editor (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1500 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1501 | if self.apiLanguage == "Guessed" or self.apiLanguage.startswith("Pygments|"): |
812
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1502 | lang = self.lexer_.name() |
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1503 | if normalized: |
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1504 | # adjust some Pygments lexer names |
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1505 | if lang == "Python": |
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1506 | lang = "Python2" |
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1507 | elif lang == "Python 3": |
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1508 | lang = "Python3" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1509 | else: |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1510 | lang = self.apiLanguage |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1511 | if forPygments: |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1512 | # adjust some names to Pygments lexer names |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1513 | if lang == "Python2": |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1514 | lang = "Python" |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1515 | elif lang == "Python3": |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1516 | lang = "Python 3" |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1517 | return lang |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1518 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1519 | def __bindCompleter(self, filename): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1520 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1521 | Private slot to set the correct typing completer depending on language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1522 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1523 | @param filename filename used to determine the associated typing |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1524 | completer language (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1525 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1526 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1527 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1528 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1529 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1530 | filename = os.path.basename(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1531 | apiLanguage = Preferences.getEditorLexerAssoc(filename) |
811
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1532 | if apiLanguage == "": |
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1533 | if self.isPy2File(): |
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1534 | apiLanguage = "Python2" |
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1535 | elif self.isPy3File(): |
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1536 | apiLanguage = "Python3" |
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1537 | elif self.isRubyFile(): |
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1538 | apiLanguage = "Ruby" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1539 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1540 | self.completer = TypingCompleters.getCompleter(apiLanguage, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1541 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1542 | def getCompleter(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1543 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1544 | Public method to retrieve a reference to the completer object. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1545 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1546 | @return the completer object (CompleterBase) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1547 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1548 | return self.completer |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1549 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1550 | def __modificationChanged(self, m): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1551 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1552 | Private slot to handle the modificationChanged signal. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1553 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1554 | It emits the signal modificationStatusChanged with parameters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1555 | m and self. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1556 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1557 | @param m modification status |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1558 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1559 | if not m and self.fileName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1560 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1561 | if Preferences.getEditor("AutoCheckSyntax"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1562 | self.clearSyntaxError() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1563 | self.modificationStatusChanged.emit(m, self) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1564 | self.undoAvailable.emit(self.isUndoAvailable()) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1565 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1566 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1567 | def __cursorPositionChanged(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1568 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1569 | Private slot to handle the cursorPositionChanged signal. |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1570 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1571 | It emits the signal cursorChanged with parameters fileName, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1572 | line and pos. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1573 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1574 | @param line line number of the cursor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1575 | @param index position in line of the cursor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1576 | """ |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
1577 | self.cursorChanged.emit(self.fileName, line + 1, index) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1578 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1579 | if Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1580 | self.__markOccurrencesTimer.stop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1581 | self.__markOccurrencesTimer.start() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1582 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1583 | if self.spell is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1584 | # do spell checking |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1585 | doSpelling = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1586 | if self.lastLine == line: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1587 | start, end = self.getWordBoundaries(line, index, useWordChars=False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1588 | if start <= self.lastIndex and self.lastIndex <= end: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1589 | doSpelling = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1590 | if doSpelling: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1591 | pos = self.positionFromLineIndex(self.lastLine, self.lastIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1592 | self.spell.checkWord(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1593 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1594 | self.lastLine = line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1595 | self.lastIndex = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1596 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1597 | def __modificationReadOnly(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1598 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1599 | Private slot to handle the modificationAttempted signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1600 | """ |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
1601 | E5MessageBox.warning(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1602 | self.trUtf8("Modification of Read Only file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1603 | self.trUtf8("""You are attempting to change a read only file. """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1604 | """Please save to a different file first.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1605 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1606 | def setNoName(self, noName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1607 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1608 | Public method to set the display string for an unnamed editor. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1609 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1610 | @param noName display string for this unnamed editor (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1611 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1612 | self.noName = noName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1613 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1614 | def getNoName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1615 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1616 | Public method to get the display string for an unnamed editor. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1617 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1618 | @return display string for this unnamed editor (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1619 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1620 | return self.noName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1621 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1622 | def getFileName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1623 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1624 | Public method to return the name of the file being displayed. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1625 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1626 | @return filename of the displayed file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1627 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1628 | return self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1629 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1630 | def getFileType(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1631 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1632 | Public method to return the type of the file being displayed. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1633 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1634 | @return type of the displayed file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1635 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1636 | return self.filetype |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1637 | |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1638 | def getFileTypeByFlag(self): |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1639 | """ |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1640 | Public method to return the type of the file, if it was set by an eflag: marker. |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1641 | |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1642 | @return type of the displayed file, if set by an eflag: marker or an empty |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1643 | string (string) |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1644 | """ |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1645 | if self.filetypeByFlag: |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1646 | return self.filetype |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1647 | else: |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1648 | return "" |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1649 | |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1650 | def determineFileType(self): |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1651 | """ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1652 | Public method to determine the file type using various tests. |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1653 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1654 | @return type of the displayed file or an empty string (string) |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1655 | """ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1656 | ftype = self.filetype |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1657 | if not ftype: |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1658 | ftype = self.getFileTypeByFlag() |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1659 | if not ftype: |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1660 | if self.isPy2File(): |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1661 | ftype = "Python2" |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1662 | elif self.isPy3File(): |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1663 | ftype = "Python3" |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1664 | elif self.isRubyFile(): |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1665 | ftype = "Ruby" |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1666 | else: |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1667 | ftype = "" |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1668 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1669 | return ftype |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1670 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1671 | def getEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1672 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1673 | Public method to return the current encoding. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1674 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1675 | @return current encoding (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1676 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1677 | return self.encoding |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1678 | |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
1679 | def isPy2File(self): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1680 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1681 | Public method to return a flag indicating a Python file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1682 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1683 | @return flag indicating a Python file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1684 | """ |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1685 | if self.filetype in ["Python", "Python2"]: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1686 | return True |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1687 | |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1688 | if self.filetype == "": |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1689 | line0 = self.text(0) |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1690 | if line0.startswith("#!") and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1691 | ("python2" in line0 or \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1692 | ("python" in line0 and not "python3" in line0)): |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1693 | self.filetype = "Python2" |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1694 | return True |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1695 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1696 | if self.fileName is not None: |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1697 | ext = os.path.splitext(self.fileName)[1] |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1698 | if ext in [".py", ".pyw"] and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1699 | Preferences.getProject("DeterminePyFromProject") and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1700 | self.project.isOpen() and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1701 | self.project.isProjectFile(self.fileName): |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1702 | isProjectPy2 = \ |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1703 | self.project.getProjectLanguage() in ["Python", "Python2"] |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1704 | if isProjectPy2: |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1705 | self.filetype = "Python2" |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1706 | return isProjectPy2 |
994
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
1707 | |
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
1708 | if ext in self.dbs.getExtensions('Python2'): |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1709 | self.filetype = "Python2" |
994
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
1710 | return True |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1711 | |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1712 | return False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1713 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1714 | def isPy3File(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1715 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1716 | Public method to return a flag indicating a Python3 file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1717 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1718 | @return flag indicating a Python3 file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1719 | """ |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1720 | if self.filetype in ["Python3"]: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1721 | return True |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1722 | |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1723 | if self.filetype == "": |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1724 | line0 = self.text(0) |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1725 | if line0.startswith("#!") and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1726 | "python3" in line0: |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1727 | self.filetype = "Python3" |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1728 | return True |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1729 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1730 | if self.fileName is not None: |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1731 | ext = os.path.splitext(self.fileName)[1] |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1732 | if ext in [".py", ".pyw"] and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1733 | Preferences.getProject("DeterminePyFromProject") and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1734 | self.project.isOpen() and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1735 | self.project.isProjectFile(self.fileName): |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1736 | isProjectPy3 = self.project.getProjectLanguage() in ["Python3"] |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1737 | if isProjectPy3: |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1738 | self.filetype = "Python3" |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1739 | return isProjectPy3 |
994
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
1740 | |
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
1741 | if ext in self.dbs.getExtensions('Python3'): |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1742 | self.filetype = "Python3" |
994
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
1743 | return True |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1744 | |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1745 | return False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1746 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1747 | def isRubyFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1748 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1749 | Public method to return a flag indicating a Ruby file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1750 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1751 | @return flag indicating a Ruby file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1752 | """ |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1753 | if self.filetype == "Ruby": |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1754 | return True |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1755 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1756 | if self.filetype == "": |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1757 | line0 = self.text(0) |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1758 | if line0.startswith("#!") and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1759 | "ruby" in line0: |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1760 | self.filetype = "Ruby" |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1761 | return True |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1762 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1763 | if self.fileName is not None and \ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1764 | os.path.splitext(self.fileName)[1] in self.dbs.getExtensions('Ruby'): |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1765 | self.filetype = "Ruby" |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1766 | return True |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1767 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1768 | return False |
1196
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1769 | |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1770 | def isPreviewable(self): |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1771 | """ |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1772 | Public method to check, if the contents of the file is previewable in |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1773 | a web browser. |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1774 | |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1775 | @return flag indicating a previewable file (boolean) |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1776 | """ |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1777 | if self.fileName is not None and \ |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1778 | os.path.splitext(self.fileName)[1][1:] in Preferences.getEditor( |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1779 | "PreviewableFileNameExtensions"): |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1780 | return True |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1781 | elif self.getLanguage() == "HTML": |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1782 | return True |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1783 | else: |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1784 | return False |
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
1785 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1786 | def highlightVisible(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1787 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1788 | Public method to make sure that the highlight is visible. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1789 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1790 | if self.lastHighlight is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1791 | lineno = self.markerLine(self.lastHighlight) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1792 | self.ensureVisible(lineno + 1) |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1793 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1794 | def highlight(self, line=None, error=False, syntaxError=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1795 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1796 | Public method to highlight (or de-highlight) a particular line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1797 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1798 | @param line line number to highlight (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1799 | @param error flag indicating whether the error highlight should be used (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1800 | @param syntaxError flag indicating a syntax error (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1801 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1802 | if line is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1803 | self.lastHighlight = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1804 | if self.lastErrorMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1805 | self.markerDeleteHandle(self.lastErrorMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1806 | self.lastErrorMarker = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1807 | if self.lastCurrMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1808 | self.markerDeleteHandle(self.lastCurrMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1809 | self.lastCurrMarker = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1810 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1811 | if error: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1812 | if self.lastErrorMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1813 | self.markerDeleteHandle(self.lastErrorMarker) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1814 | self.lastErrorMarker = self.markerAdd(line - 1, self.errorline) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1815 | self.lastHighlight = self.lastErrorMarker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1816 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1817 | if self.lastCurrMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1818 | self.markerDeleteHandle(self.lastCurrMarker) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1819 | self.lastCurrMarker = self.markerAdd(line - 1, self.currentline) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1820 | self.lastHighlight = self.lastCurrMarker |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1821 | self.setCursorPosition(line - 1, 0) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1822 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1823 | def getHighlightPosition(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1824 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1825 | Public method to return the position of the highlight bar. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1826 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1827 | @return line number of the highlight bar (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1828 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1829 | if self.lastHighlight is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1830 | return self.markerLine(self.lastHighlight) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1831 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1832 | return 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1833 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1834 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1835 | ## Breakpoint handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1836 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1837 | |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1838 | def __modified(self, pos, mtype, text, length, linesAdded, line, foldNow, foldPrev, |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1839 | token, annotationLinesAdded): |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1840 | """ |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1841 | Private method to handle changes of the number of lines. |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1842 | |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1843 | @param pos start position of change (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1844 | @param mtype flags identifying the change (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1845 | @param text text that is given to the Undo system (string) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1846 | @param length length of the change (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1847 | @param linesAdded number of added/deleted lines (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1848 | @param line line number of a fold level or marker change (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1849 | @param foldNow new fold level (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1850 | @param foldPrev previous fold level (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1851 | @param token ??? |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1852 | @param annotationLinesAdded number of added/deleted annotation lines (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1853 | """ |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1854 | if mtype & (self.SC_MOD_INSERTTEXT | self.SC_MOD_DELETETEXT) and \ |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1855 | linesAdded != 0: |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1856 | if self.breaks: |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1857 | bps = [] # list of breakpoints |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1858 | for handle, (ln, cond, temp, enabled, ignorecount) in self.breaks.items(): |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1859 | line = self.markerLine(handle) + 1 |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1860 | if ln != line: |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1861 | bps.append((ln, line)) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1862 | self.breaks[handle] = (line, cond, temp, enabled, ignorecount) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1863 | self.inLinesChanged = True |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1864 | for ln, line in sorted(bps, reverse=linesAdded > 0): |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1865 | index1 = self.breakpointModel.getBreakPointIndex(self.fileName, ln) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1866 | index2 = self.breakpointModel.index(index1.row(), 1) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1867 | self.breakpointModel.setData(index2, line) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1868 | self.inLinesChanged = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1869 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1870 | def __restoreBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1871 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1872 | Private method to restore the breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1873 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1874 | for handle in list(self.breaks.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1875 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1876 | self.__addBreakPoints(QModelIndex(), 0, self.breakpointModel.rowCount() - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1877 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1878 | def __deleteBreakPoints(self, parentIndex, start, end): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1879 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1880 | Private slot to delete breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1881 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1882 | @param parentIndex index of parent item (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1883 | @param start start row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1884 | @param end end row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1885 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1886 | for row in range(start, end + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1887 | index = self.breakpointModel.index(row, 0, parentIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1888 | fn, lineno = self.breakpointModel.getBreakPointByIndex(index)[0:2] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1889 | if fn == self.fileName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1890 | self.clearBreakpoint(lineno) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1891 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1892 | def __changeBreakPoints(self, startIndex, endIndex): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1893 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1894 | Private slot to set changed breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1895 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1896 | @param indexes indexes of changed breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1897 | """ |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1898 | if not self.inLinesChanged: |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
1899 | self.__addBreakPoints(QModelIndex(), startIndex.row(), endIndex.row()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1900 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1901 | def __breakPointDataAboutToBeChanged(self, startIndex, endIndex): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1902 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1903 | Private slot to handle the dataAboutToBeChanged signal of the breakpoint model. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1904 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1905 | @param startIndex start index of the rows to be changed (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1906 | @param endIndex end index of the rows to be changed (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1907 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1908 | self.__deleteBreakPoints(QModelIndex(), startIndex.row(), endIndex.row()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1909 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1910 | def __addBreakPoints(self, parentIndex, start, end): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1911 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1912 | Private slot to add breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1913 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1914 | @param parentIndex index of parent item (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1915 | @param start start row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1916 | @param end end row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1917 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1918 | for row in range(start, end + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1919 | index = self.breakpointModel.index(row, 0, parentIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1920 | fn, line, cond, temp, enabled, ignorecount = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1921 | self.breakpointModel.getBreakPointByIndex(index)[:6] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1922 | if fn == self.fileName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1923 | self.newBreakpointWithProperties(line, (cond, temp, enabled, ignorecount)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1924 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1925 | def clearBreakpoint(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1926 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1927 | Public method to clear a breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1928 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1929 | Note: This doesn't clear the breakpoint in the debugger, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1930 | it just deletes it from the editor internal list of breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1931 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1932 | @param line linenumber of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1933 | """ |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1934 | if self.inLinesChanged: |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1935 | return |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
1936 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1937 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1938 | if self.markerLine(handle) == line - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1939 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1940 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1941 | # not found, simply ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1942 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1943 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1944 | del self.breaks[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1945 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1946 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1947 | def newBreakpointWithProperties(self, line, properties): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1948 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1949 | Private method to set a new breakpoint and its properties. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1950 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1951 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1952 | @param properties properties for the breakpoint (tuple) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1953 | (condition, temporary flag, enabled flag, ignore count) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1954 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1955 | if not properties[2]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1956 | marker = self.dbreakpoint |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1957 | elif properties[0]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1958 | marker = properties[1] and self.tcbreakpoint or self.cbreakpoint |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1959 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1960 | marker = properties[1] and self.tbreakpoint or self.breakpoint |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1961 | |
1930
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
1962 | if self.markersAtLine(line - 1) & self.breakpointMask == 0: |
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
1963 | handle = self.markerAdd(line - 1, marker) |
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
1964 | self.breaks[handle] = (line,) + properties |
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
1965 | self.breakpointToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1966 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1967 | def __toggleBreakpoint(self, line, temporary=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1968 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1969 | Private method to toggle a breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1970 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1971 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1972 | @param temporary flag indicating a temporary breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1973 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1974 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1975 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1976 | # delete breakpoint or toggle it to the next state |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1977 | index = self.breakpointModel.getBreakPointIndex(self.fileName, line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1978 | if Preferences.getDebugger("ThreeStateBreakPoints") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1979 | not self.breakpointModel.isBreakPointTemporaryByIndex(index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1980 | self.breakpointModel.deleteBreakPointByIndex(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1981 | self.__addBreakPoint(line, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1982 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1983 | self.breakpointModel.deleteBreakPointByIndex(index) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
1984 | self.breakpointToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1985 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1986 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1987 | self.__addBreakPoint(line, temporary) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1988 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1989 | def __addBreakPoint(self, line, temporary): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1990 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1991 | Private method to add a new breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1992 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1993 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1994 | @param temporary flag indicating a temporary breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1995 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1996 | if self.fileName and \ |
1762
307393ebe9c6
Some little optimisations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1758
diff
changeset
|
1997 | (self.isPy3File() or self.isPy2File() or self.isRubyFile()): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1998 | self.breakpointModel.addBreakPoint(self.fileName, line, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1999 | ('', temporary, True, 0)) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
2000 | self.breakpointToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2001 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2002 | def __toggleBreakpointEnabled(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2003 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2004 | Private method to toggle a breakpoints enabled status. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2005 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2006 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2007 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2008 | for handle, (ln, cond, temp, enabled, ignorecount) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2009 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2010 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2011 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2012 | # no breakpoint found on that line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2013 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2014 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2015 | index = self.breakpointModel.getBreakPointIndex(self.fileName, line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2016 | self.breakpointModel.setBreakPointEnabledByIndex(index, not enabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2017 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2018 | def curLineHasBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2019 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2020 | Public method to check for the presence of a breakpoint at the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2021 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2022 | @return flag indicating the presence of a breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2023 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2024 | line, _ = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2025 | return self.markersAtLine(line) & self.breakpointMask != 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2026 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2027 | def hasBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2028 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2029 | Public method to check for the presence of breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2030 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2031 | @return flag indicating the presence of breakpoints (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2032 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2033 | return len(self.breaks) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2034 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2035 | def __menuToggleTemporaryBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2036 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2037 | Private slot to handle the 'Toggle temporary breakpoint' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2038 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2039 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2040 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2041 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2042 | self.__toggleBreakpoint(self.line, 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2043 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2044 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2045 | def menuToggleBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2046 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2047 | Public slot to handle the 'Toggle breakpoint' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2048 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2049 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2050 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2051 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2052 | self.__toggleBreakpoint(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2053 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2054 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2055 | def __menuToggleBreakpointEnabled(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2056 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2057 | Private slot to handle the 'Enable/Disable breakpoint' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2058 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2059 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2060 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2061 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2062 | self.__toggleBreakpointEnabled(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2063 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2064 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2065 | def menuEditBreakpoint(self, line=None): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2066 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2067 | Public slot to handle the 'Edit breakpoint' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2068 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2069 | @param line linenumber of the breakpoint to edit |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2070 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2071 | if line is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2072 | self.line = line - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2073 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2074 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2075 | found = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2076 | for handle, (ln, cond, temp, enabled, ignorecount) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2077 | if self.markerLine(handle) == self.line: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2078 | found = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2079 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2080 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2081 | if found: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2082 | index = self.breakpointModel.getBreakPointIndex(self.fileName, ln) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2083 | if not index.isValid(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2084 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2085 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2086 | dlg = EditBreakpointDialog((self.fileName, ln), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2087 | (cond, temp, enabled, ignorecount), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2088 | self.condHistory, self, modal=True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2089 | if dlg.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2090 | cond, temp, enabled, ignorecount = dlg.getData() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2091 | self.breakpointModel.setBreakPointByIndex(index, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2092 | self.fileName, ln, (cond, temp, enabled, ignorecount)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2093 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2094 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2095 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2096 | def menuNextBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2097 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2098 | Public slot to handle the 'Next breakpoint' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2099 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2100 | line, index = self.getCursorPosition() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2101 | if line == self.lines() - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2102 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2103 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2104 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2105 | bpline = self.markerFindNext(line, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2106 | if bpline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2107 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2108 | bpline = self.markerFindNext(0, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2109 | if bpline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2110 | self.setCursorPosition(bpline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2111 | self.ensureLineVisible(bpline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2112 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2113 | def menuPreviousBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2114 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2115 | Public slot to handle the 'Previous breakpoint' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2116 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2117 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2118 | if line == 0: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2119 | line = self.lines() - 1 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2120 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2121 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2122 | bpline = self.markerFindPrevious(line, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2123 | if bpline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2124 | # wrap around |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2125 | bpline = self.markerFindPrevious(self.lines() - 1, self.breakpointMask) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2126 | if bpline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2127 | self.setCursorPosition(bpline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2128 | self.ensureLineVisible(bpline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2129 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2130 | def __menuClearBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2131 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2132 | Private slot to handle the 'Clear all breakpoints' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2133 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2134 | self.__clearBreakpoints(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2135 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2136 | def __clearBreakpoints(self, fileName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2137 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2138 | Private slot to clear all breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2139 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2140 | idxList = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2141 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2142 | index = self.breakpointModel.getBreakPointIndex(fileName, ln) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2143 | if index.isValid(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2144 | idxList.append(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2145 | if idxList: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2146 | self.breakpointModel.deleteBreakPoints(idxList) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2147 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2148 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2149 | ## Bookmark handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2150 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2151 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2152 | def toggleBookmark(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2153 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2154 | Public method to toggle a bookmark. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2155 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2156 | @param line line number of the bookmark (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2157 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2158 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2159 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2160 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2161 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2162 | # set a new bookmark |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2163 | handle = self.markerAdd(line - 1, self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2164 | self.bookmarks.append(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2165 | self.bookmarkToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2166 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2167 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2168 | self.bookmarks.remove(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2169 | self.markerDeleteHandle(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2170 | self.bookmarkToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2171 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2172 | def getBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2173 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2174 | Public method to retrieve the bookmarks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2175 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2176 | @return sorted list of all lines containing a bookmark |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2177 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2178 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2179 | bmlist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2180 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2181 | bmlist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2182 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2183 | bmlist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2184 | return bmlist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2185 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2186 | def hasBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2187 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2188 | Public method to check for the presence of bookmarks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2189 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2190 | @return flag indicating the presence of bookmarks (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2191 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2192 | return len(self.bookmarks) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2193 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2194 | def menuToggleBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2195 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2196 | Public slot to handle the 'Toggle bookmark' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2197 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2198 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2199 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2200 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2201 | self.toggleBookmark(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2202 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2203 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2204 | def nextBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2205 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2206 | Public slot to handle the 'Next bookmark' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2207 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2208 | line, index = self.getCursorPosition() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2209 | if line == self.lines() - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2210 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2211 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2212 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2213 | bmline = self.markerFindNext(line, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2214 | if bmline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2215 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2216 | bmline = self.markerFindNext(0, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2217 | if bmline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2218 | self.setCursorPosition(bmline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2219 | self.ensureLineVisible(bmline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2220 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2221 | def previousBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2222 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2223 | Public slot to handle the 'Previous bookmark' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2224 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2225 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2226 | if line == 0: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2227 | line = self.lines() - 1 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2228 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2229 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2230 | bmline = self.markerFindPrevious(line, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2231 | if bmline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2232 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2233 | bmline = self.markerFindPrevious(self.lines() - 1, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2234 | if bmline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2235 | self.setCursorPosition(bmline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2236 | self.ensureLineVisible(bmline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2237 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2238 | def clearBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2239 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2240 | Public slot to handle the 'Clear all bookmarks' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2241 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2242 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2243 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2244 | self.bookmarks = [] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2245 | self.bookmarkToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2246 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2247 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2248 | ## Printing methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2249 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2250 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2251 | def printFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2252 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2253 | Public slot to print the text. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2254 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2255 | printer = Printer(mode=QPrinter.HighResolution) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2256 | sb = e5App().getObject("UserInterface").statusBar() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2257 | printDialog = QPrintDialog(printer, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2258 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2259 | printDialog.addEnabledOption(QAbstractPrintDialog.PrintSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2260 | if printDialog.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2261 | sb.showMessage(self.trUtf8('Printing...')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2262 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2263 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2264 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2265 | printer.setDocName(os.path.basename(fn)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2266 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2267 | printer.setDocName(self.noName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2268 | if printDialog.printRange() == QAbstractPrintDialog.Selection: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2269 | # get the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2270 | fromLine, fromIndex, toLine, toIndex = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2271 | if toIndex == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2272 | toLine -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2273 | # Qscintilla seems to print one line more than told |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2274 | res = printer.printRange(self, fromLine, toLine - 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2275 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2276 | res = printer.printRange(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2277 | if res: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2278 | sb.showMessage(self.trUtf8('Printing completed'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2279 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2280 | sb.showMessage(self.trUtf8('Error while printing'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2281 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2282 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2283 | sb.showMessage(self.trUtf8('Printing aborted'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2284 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2285 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2286 | def printPreviewFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2287 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2288 | Public slot to show a print preview of the text. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2289 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2290 | from PyQt4.QtGui import QPrintPreviewDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2291 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2292 | printer = Printer(mode=QPrinter.HighResolution) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2293 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2294 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2295 | printer.setDocName(os.path.basename(fn)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2296 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2297 | printer.setDocName(self.noName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2298 | preview = QPrintPreviewDialog(printer, self) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2299 | preview.paintRequested.connect(self.__printPreview) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2300 | preview.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2301 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2302 | def __printPreview(self, printer): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2303 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2304 | Private slot to generate a print preview. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2305 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2306 | @param printer reference to the printer object (QScintilla.Printer.Printer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2307 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2308 | printer.printRange(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2309 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2310 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2311 | ## Task handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2312 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2313 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2314 | def hasTaskMarkers(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2315 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2316 | Public method to determine, if this editor contains any task markers. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2317 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2318 | @return flag indicating the presence of task markers (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2319 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2320 | return self.__hasTaskMarkers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2321 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2322 | def nextTask(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2323 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2324 | Public slot to handle the 'Next task' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2325 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2326 | line, index = self.getCursorPosition() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2327 | if line == self.lines() - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2328 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2329 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2330 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2331 | taskline = self.markerFindNext(line, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2332 | if taskline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2333 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2334 | taskline = self.markerFindNext(0, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2335 | if taskline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2336 | self.setCursorPosition(taskline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2337 | self.ensureLineVisible(taskline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2338 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2339 | def previousTask(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2340 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2341 | Public slot to handle the 'Previous task' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2342 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2343 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2344 | if line == 0: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2345 | line = self.lines() - 1 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2346 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2347 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2348 | taskline = self.markerFindPrevious(line, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2349 | if taskline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2350 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2351 | taskline = self.markerFindPrevious(self.lines() - 1, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2352 | if taskline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2353 | self.setCursorPosition(taskline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2354 | self.ensureLineVisible(taskline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2355 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2356 | def extractTasks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2357 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2358 | Public slot to extract all tasks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2359 | """ |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2360 | markers = { |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2361 | Task.TypeWarning: Preferences.getTasks("TasksWarningMarkers").split(), |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2362 | Task.TypeNote: Preferences.getTasks("TasksNoteMarkers").split(), |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2363 | Task.TypeTodo: Preferences.getTasks("TasksTodoMarkers").split(), |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2364 | Task.TypeFixme: Preferences.getTasks("TasksFixmeMarkers").split(), |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2365 | } |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2366 | txtList = self.text().split(self.getLineSeparator()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2367 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2368 | # clear all task markers and tasks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2369 | self.markerDeleteAll(self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2370 | self.taskViewer.clearFileTasks(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2371 | self.__hasTaskMarkers = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2372 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2373 | # now search tasks and record them |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2374 | lineIndex = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2375 | for line in txtList: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2376 | lineIndex += 1 |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2377 | shouldBreak = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2378 | |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2379 | for taskType, taskMarkers in markers.items(): |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2380 | for taskMarker in taskMarkers: |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2381 | index = line.find(taskMarker) |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2382 | if index > -1: |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2383 | task = line[index:] |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2384 | self.markerAdd(lineIndex, self.taskmarker) |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2385 | self.taskViewer.addFileTask(task, self.fileName, lineIndex + 1, |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2386 | taskType) |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2387 | self.__hasTaskMarkers = True |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2388 | shouldBreak = True |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2389 | break |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2390 | if shouldBreak: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2391 | break |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2392 | self.taskMarkersUpdated.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2393 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2394 | ############################################################################ |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2395 | ## Change tracing methods below |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2396 | ############################################################################ |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2397 | |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2398 | def __createChangeMarkerPixmap(self, key, size=16, width=4): |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2399 | """ |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2400 | Private method to create a pixmap for the change markers. |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2401 | |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2402 | @param key key of the color to use (string) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2403 | @param size size of the pixmap (integer) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2404 | @param width width of the marker line (integer) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2405 | @return create pixmap (QPixmap) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2406 | """ |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2407 | pixmap = QPixmap(size, size) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2408 | pixmap.fill(Qt.transparent) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2409 | painter = QPainter(pixmap) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2410 | painter.fillRect(size - 4, 0, 4, size, Preferences.getEditorColour(key)) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2411 | painter.end() |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2412 | return pixmap |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2413 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2414 | def __initOnlineChangeTrace(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2415 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2416 | Private slot to initialize the online change trace. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2417 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2418 | self.__hasChangeMarkers = False |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2419 | self.__oldText = self.text() |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2420 | self.__lastSavedText = self.text() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2421 | self.__onlineChangeTraceTimer = QTimer(self) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2422 | self.__onlineChangeTraceTimer.setSingleShot(True) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2423 | self.__onlineChangeTraceTimer.setInterval( |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2424 | Preferences.getEditor("OnlineChangeTraceInterval")) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2425 | self.__onlineChangeTraceTimer.timeout.connect( |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2426 | self.__onlineChangeTraceTimerTimeout) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2427 | self.textChanged.connect(self.__resetOnlineChangeTraceTimer) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2428 | |
2189
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2429 | def __reinitOnlineChangeTrace(self): |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2430 | """ |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2431 | Private slot to re-initialize the online change trace. |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2432 | """ |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2433 | self.__oldText = self.text() |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2434 | self.__lastSavedText = self.text() |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2435 | self.__deleteAllChangeMarkers() |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2436 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2437 | def __resetOnlineChangeTraceTimer(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2438 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2439 | Private method to reset the online syntax check timer. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2440 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2441 | if Preferences.getEditor("OnlineChangeTrace"): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2442 | self.__onlineChangeTraceTimer.stop() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2443 | self.__onlineChangeTraceTimer.start() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2444 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2445 | def __onlineChangeTraceTimerTimeout(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2446 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2447 | Private slot to mark added and changed lines. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2448 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2449 | self.__deleteAllChangeMarkers() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2450 | |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2451 | # step 1: mark saved changes |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2452 | oldL = self.__oldText.splitlines() |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2453 | newL = self.__lastSavedText.splitlines() |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2454 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2455 | |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2456 | for token, i1, i2, j1, j2 in matcher.get_opcodes(): |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2457 | if token in ["insert", "replace"]: |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2458 | for lineNo in range(j1, j2): |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2459 | self.markerAdd(lineNo, self.__changeMarkerSaved) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2460 | self.__hasChangeMarkers = True |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2461 | |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2462 | # step 2: mark unsaved changes |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2463 | oldL = self.__lastSavedText.splitlines() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2464 | newL = self.text().splitlines() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2465 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2466 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2467 | for token, i1, i2, j1, j2 in matcher.get_opcodes(): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2468 | if token in ["insert", "replace"]: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2469 | for lineNo in range(j1, j2): |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2470 | self.markerAdd(lineNo, self.__changeMarkerUnsaved) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2471 | self.__hasChangeMarkers = True |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2472 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2473 | if self.__hasChangeMarkers: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2474 | self.changeMarkersUpdated.emit(self) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2475 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2476 | def __resetOnlineChangeTraceInfo(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2477 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2478 | Private slot to reset the online change trace info. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2479 | """ |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2480 | self.__lastSavedText = self.text() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2481 | self.__deleteAllChangeMarkers() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2482 | |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2483 | # mark saved changes |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2484 | oldL = self.__oldText.splitlines() |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2485 | newL = self.__lastSavedText.splitlines() |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2486 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2487 | |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2488 | for token, i1, i2, j1, j2 in matcher.get_opcodes(): |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2489 | if token in ["insert", "replace"]: |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2490 | for lineNo in range(j1, j2): |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2491 | self.markerAdd(lineNo, self.__changeMarkerSaved) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2492 | self.__hasChangeMarkers = True |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2493 | |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2494 | if self.__hasChangeMarkers: |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2495 | self.changeMarkersUpdated.emit(self) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2496 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2497 | def __deleteAllChangeMarkers(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2498 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2499 | Private slot to delete all change markers. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2500 | """ |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2501 | self.markerDeleteAll(self.__changeMarkerUnsaved) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2502 | self.markerDeleteAll(self.__changeMarkerSaved) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2503 | self.__hasChangeMarkers = False |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2504 | self.changeMarkersUpdated.emit(self) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2505 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2506 | def hasChangeMarkers(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2507 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2508 | Public method to determine, if this editor contains any change markers. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2509 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2510 | @return flag indicating the presence of change markers (boolean) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2511 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2512 | return self.__hasChangeMarkers |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2513 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2514 | def nextChange(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2515 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2516 | Public slot to handle the 'Next change' context menu action. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2517 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2518 | line, index = self.getCursorPosition() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2519 | if line == self.lines() - 1: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2520 | line = 0 |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2521 | else: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2522 | line += 1 |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2523 | changeline = self.markerFindNext(line, self.changeMarkersMask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2524 | if changeline < 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2525 | # wrap around |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2526 | changeline = self.markerFindNext(0, self.changeMarkersMask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2527 | if changeline >= 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2528 | self.setCursorPosition(changeline, 0) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2529 | self.ensureLineVisible(changeline) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2530 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2531 | def previousChange(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2532 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2533 | Public slot to handle the 'Previous task' context menu action. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2534 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2535 | line, index = self.getCursorPosition() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2536 | if line == 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2537 | line = self.lines() - 1 |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2538 | else: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2539 | line -= 1 |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2540 | changeline = self.markerFindPrevious(line, self.changeMarkersMask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2541 | if changeline < 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2542 | # wrap around |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2543 | changeline = self.markerFindPrevious(self.lines() - 1, self.changeMarkersMask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2544 | if changeline >= 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2545 | self.setCursorPosition(changeline, 0) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2546 | self.ensureLineVisible(changeline) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2547 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2548 | ############################################################################ |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2549 | ## Flags handling methods below |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2550 | ############################################################################ |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2551 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2552 | def __processFlags(self): |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2553 | """ |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2554 | Private method to extract flags and process them. |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2555 | """ |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2556 | txt = self.text() |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2557 | flags = Utilities.extractFlags(txt) |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2558 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2559 | # Flag 1: FileType |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2560 | if "FileType" in flags: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2561 | if isinstance(flags["FileType"], str): |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2562 | self.filetype = flags["FileType"] |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2563 | self.filetypeByFlag = True |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2564 | else: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2565 | if self.filetype != "" and self.filetypeByFlag: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2566 | self.filetype = "" |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2567 | self.filetypeByFlag = False |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2568 | self.__bindName(txt.splitlines()[0]) |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2569 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2570 | ############################################################################ |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2571 | ## File handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2572 | ############################################################################ |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2573 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2574 | def checkDirty(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2575 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2576 | Public method to check dirty status and open a message window. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2577 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2578 | @return flag indicating successful reset of the dirty flag (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2579 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2580 | if self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2581 | fn = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2582 | if fn is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2583 | fn = self.noName |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2584 | res = E5MessageBox.okToClearData(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2585 | self.trUtf8("File Modified"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2586 | self.trUtf8("<p>The file <b>{0}</b> has unsaved changes.</p>") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2587 | .format(fn), |
549
fe99d46d56c8
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
548
diff
changeset
|
2588 | self.saveFile) |
fe99d46d56c8
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
548
diff
changeset
|
2589 | if res: |
fe99d46d56c8
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
548
diff
changeset
|
2590 | self.vm.setEditorName(self, self.fileName) |
fe99d46d56c8
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
548
diff
changeset
|
2591 | return res |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2592 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2593 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2594 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2595 | def revertToUnmodified(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2596 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2597 | Public method to revert back to the last saved state. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2598 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2599 | undo_ = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2600 | while self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2601 | if undo_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2602 | # try undo first |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2603 | if self.isUndoAvailable(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2604 | self.undo() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2605 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2606 | undo_ = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2607 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2608 | # try redo next |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2609 | if self.isRedoAvailable(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2610 | self.redo() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2611 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2612 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2613 | # Couldn't find the unmodified state |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2614 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2615 | def readFile(self, fn, createIt=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2616 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2617 | Public slot to read the text from a file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2618 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2619 | @param fn filename to read from (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2620 | @param createIt flag indicating the creation of a new file, if the given |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2621 | one doesn't exist (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2622 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2623 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2624 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2625 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2626 | if createIt and not os.path.exists(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2627 | f = open(fn, "w") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2628 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2629 | txt, self.encoding = Utilities.readEncodedFile(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2630 | except (UnicodeDecodeError, IOError) as why: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2631 | QApplication.restoreOverrideCursor() |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
2632 | E5MessageBox.critical(self.vm, self.trUtf8('Open File'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2633 | self.trUtf8('<p>The file <b>{0}</b> could not be opened.</p>' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2634 | '<p>Reason: {1}</p>') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2635 | .format(fn, str(why))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2636 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2637 | raise |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2638 | fileEol = self.detectEolString(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2639 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2640 | modified = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2641 | if (not Preferences.getEditor("TabForIndentation")) and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2642 | Preferences.getEditor("ConvertTabsOnLoad") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2643 | not (self.lexer_ and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2644 | self.lexer_.alwaysKeepTabs()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2645 | txtExpanded = txt.expandtabs(Preferences.getEditor("TabWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2646 | if txtExpanded != txt: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2647 | modified = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2648 | txt = txtExpanded |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2649 | del txtExpanded |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2650 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2651 | self.setText(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2652 | |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2653 | # get eric specific flags |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2654 | self.__processFlags() |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2655 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2656 | # perform automatic eol conversion |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2657 | if Preferences.getEditor("AutomaticEOLConversion"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2658 | self.convertEols(self.eolMode()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2659 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2660 | self.setEolModeByEolString(fileEol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2661 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2662 | self.extractTasks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2663 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2664 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2665 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2666 | self.setModified(modified) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2667 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2668 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2669 | def __removeTrailingWhitespace(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2670 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2671 | Private method to remove trailing whitespace. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2672 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2673 | searchRE = r"[ \t]+$" # whitespace at the end of a line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2674 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2675 | ok = self.findFirstTarget(searchRE, True, False, False, 0, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2676 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2677 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2678 | self.replaceTarget("") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2679 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2680 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2681 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2682 | def writeFile(self, fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2683 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2684 | Public slot to write the text to a file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2685 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2686 | @param fn filename to write to (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2687 | @return flag indicating success (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2688 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2689 | if Preferences.getEditor("StripTrailingWhitespace"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2690 | self.__removeTrailingWhitespace() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2691 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2692 | txt = self.text() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2693 | # work around glitch in scintilla: always make sure, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2694 | # that the last line is terminated properly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2695 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2696 | if eol: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2697 | if len(txt) >= len(eol): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2698 | if txt[-len(eol):] != eol: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2699 | txt += eol |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2700 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2701 | txt += eol |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2702 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2703 | # create a backup file, if the option is set |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2704 | createBackup = Preferences.getEditor("CreateBackupFile") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2705 | if createBackup: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2706 | if os.path.islink(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2707 | fn = os.path.realpath(fn) |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
2708 | bfn = '{0}~'.format(fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2709 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2710 | permissions = os.stat(fn).st_mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2711 | perms_valid = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2712 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2713 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2714 | perms_valid = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2715 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2716 | os.remove(bfn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2717 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2718 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2719 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2720 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2721 | os.rename(fn, bfn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2722 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2723 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2724 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2725 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2726 | # now write text to the file fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2727 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2728 | self.encoding = Utilities.writeEncodedFile(fn, txt, self.encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2729 | if createBackup and perms_valid: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2730 | os.chmod(fn, permissions) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2731 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2732 | except (IOError, Utilities.CodingError, UnicodeError) as why: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
2733 | E5MessageBox.critical(self, self.trUtf8('Save File'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2734 | self.trUtf8('<p>The file <b>{0}</b> could not be saved.<br/>' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2735 | 'Reason: {1}</p>') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2736 | .format(fn, str(why))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2737 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2738 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2739 | def saveFile(self, saveas=False, path=None): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2740 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2741 | Public slot to save the text to a file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2742 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2743 | @param saveas flag indicating a 'save as' action (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2744 | @param path directory to save the file in (string) |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
2745 | @return flag indicating success (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2746 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2747 | if not saveas and not self.isModified(): |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
2748 | return False # do nothing if text wasn't changed |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2749 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2750 | newName = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2751 | if saveas or self.fileName is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2752 | saveas = True |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2753 | |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2754 | # save to project, if a project is loaded |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2755 | if self.project.isOpen(): |
994
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
2756 | if self.fileName is not None and \ |
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
2757 | self.project.startswithProjectPath(self.fileName): |
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
2758 | path = os.path.dirname(self.fileName) |
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
2759 | else: |
8ed60a191a3a
Fixed an issue in isPy2File and isPy3File in the editor and refined the save as function when a project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
991
diff
changeset
|
2760 | path = self.project.getProjectPath() |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2761 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2762 | if not path and self.fileName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2763 | path = os.path.dirname(self.fileName) |
1939
eadb2328d7d4
Introduced a "workspace" directory that is used as the default for opening or saving new files or projects (configurable on Multiproject config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1930
diff
changeset
|
2764 | if not path: |
1940
324e43e29b41
Refined the "workspace" change to use the user home directory as a last resort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1939
diff
changeset
|
2765 | path = Preferences.getMultiProject("Workspace") or Utilities.getHomeDir() |
1978
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2766 | if self.fileName: |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2767 | filterPattern = "(*{0})".format(os.path.splitext(self.fileName)[1]) |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2768 | for filter in Lexers.getSaveFileFiltersList(True): |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2769 | if filterPattern in filter: |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2770 | defaultFilter = filter |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2771 | break |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2772 | else: |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2773 | defaultFilter = Preferences.getEditor("DefaultSaveFilter") |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2774 | else: |
1366fb8e7aed
A little enhancement to the editor "Save As" function to use the extension of the current file to select the filter for the file dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1940
diff
changeset
|
2775 | defaultFilter = Preferences.getEditor("DefaultSaveFilter") |
520
b0f523c3b037
Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
507
diff
changeset
|
2776 | fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2777 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2778 | self.trUtf8("Save File"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2779 | path, |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2780 | Lexers.getSaveFileFiltersList(True, True), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2781 | defaultFilter, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
2782 | E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2783 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2784 | if fn: |
718
979d6e242404
Fixed an issue in the editor saving files without extension on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
2785 | if fn.endswith("."): |
979d6e242404
Fixed an issue in the editor saving files without extension on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
2786 | fn = fn[:-1] |
979d6e242404
Fixed an issue in the editor saving files without extension on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
2787 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2788 | ext = QFileInfo(fn).suffix() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2789 | if not ext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2790 | ex = selectedFilter.split("(*")[1].split(")")[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2791 | if ex: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2792 | fn += ex |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2793 | if QFileInfo(fn).exists(): |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2794 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2795 | self.trUtf8("Save File"), |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2796 | self.trUtf8("<p>The file <b>{0}</b> already exists." |
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2797 | " Overwrite it?</p>").format(fn), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2798 | icon=E5MessageBox.Warning) |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2799 | if not res: |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
2800 | return False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2801 | fn = Utilities.toNativeSeparators(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2802 | newName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2803 | else: |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
2804 | return False |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2805 | |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2806 | # save to project, if a project is loaded |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2807 | if self.project.isOpen() and self.project.startswithProjectPath(fn): |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2808 | self.setEolModeByEolString(self.project.getEolString()) |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2809 | self.convertEols(self.eolMode()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2810 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2811 | fn = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2812 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2813 | self.editorAboutToBeSaved.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2814 | if self.writeFile(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2815 | if saveas: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2816 | self.__clearBreakpoints(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2817 | self.fileName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2818 | self.setModified(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2819 | self.setReadOnly(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2820 | self.setWindowTitle(self.fileName) |
789
c190cd71b097
Fixed an issue introduced by the latest change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
788
diff
changeset
|
2821 | # get eric specific flags |
c190cd71b097
Fixed an issue introduced by the latest change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
788
diff
changeset
|
2822 | self.__processFlags() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2823 | if self.lexer_ is None and not self.__lexerReset: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2824 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2825 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2826 | if saveas: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2827 | self.isResourcesFile = self.fileName.endswith(".qrc") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2828 | self.__initContextMenu() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2829 | self.editorRenamed.emit(self.fileName) |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2830 | |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2831 | # save to project, if a project is loaded |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2832 | if self.project.isOpen() and self.project.startswithProjectPath(fn): |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2833 | self.project.appendFile(self.fileName) |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2834 | self.addedToProject() |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
2835 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2836 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2837 | if newName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2838 | self.vm.addToRecentList(newName) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2839 | self.editorSaved.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2840 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2841 | self.extractTasks() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2842 | self.__resetOnlineChangeTraceInfo() |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
2843 | return True |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2844 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2845 | self.lastModified = QFileInfo(fn).lastModified() |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
2846 | return False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2847 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2848 | def saveFileAs(self, path=None, toProject=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2849 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2850 | Public slot to save a file with a new name. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2851 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2852 | @param path directory to save the file in (string) |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
2853 | @keyparam toProject flag indicating a save to project operation (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2854 | @return tuple of two values (boolean, string) giving a success indicator and |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2855 | the name of the saved file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2856 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2857 | return self.saveFile(True, path) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2858 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2859 | def handleRenamed(self, fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2860 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2861 | Public slot to handle the editorRenamed signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2862 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2863 | @param fn filename to be set for the editor (string). |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2864 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2865 | self.__clearBreakpoints(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2866 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2867 | self.fileName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2868 | self.setWindowTitle(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2869 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2870 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2871 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2872 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2873 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2874 | self.vm.setEditorName(self, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2875 | self.__updateReadOnly(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2876 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2877 | def fileRenamed(self, fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2878 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2879 | Public slot to handle the editorRenamed signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2880 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2881 | @param fn filename to be set for the editor (string). |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2882 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2883 | self.handleRenamed(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2884 | if not self.inFileRenamed: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2885 | self.inFileRenamed = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2886 | self.editorRenamed.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2887 | self.inFileRenamed = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2888 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2889 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2890 | ## Utility methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2891 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2892 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2893 | def ensureVisible(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2894 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2895 | Public slot to ensure, that the specified line is visible. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2896 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2897 | @param line line number to make visible |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2898 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2899 | self.ensureLineVisible(line - 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2900 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2901 | def ensureVisibleTop(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2902 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2903 | Public slot to ensure, that the specified line is visible at the top |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2904 | of the editor. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2905 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2906 | @param line line number to make visible |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2907 | """ |
1897
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
2908 | self.setFirstVisibleLine(line - 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2909 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2910 | def __marginClicked(self, margin, line, modifiers): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2911 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2912 | Private slot to handle the marginClicked signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2913 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2914 | @param margin id of the clicked margin (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2915 | @param line line number of the click (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2916 | @param modifiers keyboard modifiers (Qt.KeyboardModifiers) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2917 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2918 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2919 | if margin == 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2920 | if modifiers & Qt.KeyboardModifiers(Qt.ShiftModifier): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2921 | if self.marginMenuActs["LMBbreakpoints"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2922 | self.toggleBookmark(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2923 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2924 | self.__toggleBreakpoint(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2925 | elif modifiers & Qt.KeyboardModifiers(Qt.ControlModifier): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2926 | if self.markersAtLine(line) & (1 << self.syntaxerror): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2927 | self.__showSyntaxError(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2928 | elif self.markersAtLine(line) & (1 << self.warning): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2929 | self.__showFlakesWarning(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2930 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2931 | if self.marginMenuActs["LMBbreakpoints"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2932 | self.__toggleBreakpoint(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2933 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2934 | self.toggleBookmark(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2935 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2936 | if margin == self.__bmMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2937 | self.toggleBookmark(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2938 | elif margin == self.__bpMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2939 | self.__toggleBreakpoint(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2940 | elif margin == self.__indicMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2941 | if self.markersAtLine(line) & (1 << self.syntaxerror): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2942 | self.__showSyntaxError(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2943 | elif self.markersAtLine(line) & (1 << self.warning): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2944 | self.__showFlakesWarning(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2945 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2946 | def handleMonospacedEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2947 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2948 | Private slot to handle the Use Monospaced Font context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2949 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2950 | if self.menuActs["MonospacedFont"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2951 | self.setMonospaced(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2952 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2953 | if self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2954 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2955 | self.lexer_.initProperties() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2956 | self.setMonospaced(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2957 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2958 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2959 | def getWordBoundaries(self, line, index, useWordChars=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2960 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2961 | Public method to get the word boundaries at a position. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2962 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2963 | @param line number of line to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2964 | @param index position to look at (int) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2965 | @keyparam useWordChars flag indicating to use the wordCharacters |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2966 | method (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2967 | @return tuple with start and end indices of the word at the position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2968 | (integer, integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2969 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2970 | text = self.text(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2971 | if self.caseSensitive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2972 | cs = Qt.CaseSensitive |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2973 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2974 | cs = Qt.CaseInsensitive |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2975 | wc = self.wordCharacters() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2976 | if wc is None or not useWordChars: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2977 | regExp = QRegExp('[^\w_]', cs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2978 | else: |
448
a1f1b226ff4b
Fixed a few unicode related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
2979 | wc = re.sub('\w', "", wc) |
a1f1b226ff4b
Fixed a few unicode related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
2980 | regExp = QRegExp('[^\w{0}]'.format(re.escape(wc)), cs) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2981 | start = regExp.lastIndexIn(text, index) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2982 | end = regExp.indexIn(text, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2983 | if start == end + 1 and index > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2984 | # we are on a word boundary, try again |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2985 | start = regExp.lastIndexIn(text, index - 1) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2986 | if start == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2987 | start = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2988 | if end == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2989 | end = len(text) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2990 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2991 | return (start, end) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2992 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2993 | def getWord(self, line, index, direction=0, useWordChars=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2994 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2995 | Public method to get the word at a position. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2996 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2997 | @param line number of line to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2998 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2999 | @param direction direction to look in (0 = whole word, 1 = left, 2 = right) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3000 | @keyparam useWordChars flag indicating to use the wordCharacters |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3001 | method (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3002 | @return the word at that position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3003 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3004 | start, end = self.getWordBoundaries(line, index, useWordChars) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3005 | if direction == 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3006 | end = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3007 | elif direction == 2: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3008 | start = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3009 | if end > start: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3010 | text = self.text(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3011 | word = text[start:end] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3012 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3013 | word = '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3014 | return word |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3015 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3016 | def getWordLeft(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3017 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3018 | Public method to get the word to the left of a position. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3019 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3020 | @param line number of line to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3021 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3022 | @return the word to the left of that position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3023 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3024 | return self.getWord(line, index, 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3025 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3026 | def getWordRight(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3027 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3028 | Public method to get the word to the right of a position. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3029 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3030 | @param line number of line to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3031 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3032 | @return the word to the right of that position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3033 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3034 | return self.getWord(line, index, 2) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3035 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3036 | def getCurrentWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3037 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3038 | Public method to get the word at the current position. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3039 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3040 | @return the word at that current position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3041 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3042 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3043 | return self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3044 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3045 | def selectWord(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3046 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3047 | Public method to select the word at a position. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3048 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3049 | @param line number of line to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3050 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3051 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3052 | start, end = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3053 | self.setSelection(line, start, line, end) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3054 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3055 | def selectCurrentWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3056 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3057 | Public method to select the current word. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3058 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3059 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3060 | self.selectWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3061 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3062 | def __getCharacter(self, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3063 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3064 | Private method to get the character to the left of the current position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3065 | in the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3066 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3067 | @param pos position to get character at (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3068 | @return requested character or "", if there are no more (string) and |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3069 | the next position (i.e. pos - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3070 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3071 | if pos <= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3072 | return "", pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3073 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3074 | pos = self.positionBefore(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3075 | ch = self.charAt(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3076 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3077 | # Don't go past the end of the previous line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3078 | if ch == '\n' or ch == '\r': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3079 | return "", pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3080 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3081 | return ch, pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3082 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3083 | def getSearchText(self, selectionOnly=False): |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3084 | """ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3085 | Public method to determine the selection or the current word for the next |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3086 | search operation. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3087 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3088 | @param selectionOnly flag indicating that only selected text should be |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3089 | returned (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3090 | @return selection or current word (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3091 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3092 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3093 | text = self.selectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3094 | if '\r' in text or '\n' in text: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3095 | # the selection contains at least a newline, it is |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3096 | # unlikely to be the expression to search for |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3097 | return '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3098 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3099 | return text |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3100 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3101 | if not selectionOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3102 | # no selected text, determine the word at the current position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3103 | return self.getCurrentWord() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3104 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3105 | return '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3106 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3107 | def setSearchIndicator(self, startPos, indicLength): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3108 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3109 | Public method to set a search indicator for the given range. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3110 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3111 | @param startPos start position of the indicator (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3112 | @param indicLength length of the indicator (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3113 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3114 | self.setIndicatorRange(self.searchIndicator, startPos, indicLength) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3115 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3116 | def clearSearchIndicators(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3117 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3118 | Public method to clear all search indicators. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3119 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3120 | self.clearAllIndicators(self.searchIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3121 | self.__markedText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3122 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3123 | def __markOccurrences(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3124 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3125 | Private method to mark all occurrences of the current word. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3126 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3127 | word = self.getCurrentWord() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3128 | if not word: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3129 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3130 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3131 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3132 | if self.__markedText == word: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3133 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3134 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3135 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3136 | ok = self.findFirstTarget(word, False, self.caseSensitive(), True, 0, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3137 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3138 | tgtPos, tgtLen = self.getFoundTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3139 | self.setSearchIndicator(tgtPos, tgtLen) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3140 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3141 | self.__markedText = word |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3142 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3143 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3144 | ## Comment handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3145 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3146 | |
1500
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3147 | def toggleCommentBlock(self): |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3148 | """ |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3149 | Public slot to toggle the comment of a block. |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3150 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3151 | If the line of the cursor or the selection is not commented, it will |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3152 | be commented. If it is commented, the comment block will be removed. |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3153 | The later works independent of the current selection. |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3154 | """ |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3155 | if self.lexer_ is None or not self.lexer_.canBlockComment(): |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3156 | return |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3157 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3158 | commentStr = self.lexer_.commentStr() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3159 | line, index = self.getCursorPosition() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3160 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3161 | # check if line starts with our comment string (i.e. was commented |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3162 | # by our comment...() slots |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3163 | if not self.text(line).strip().startswith(commentStr): |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3164 | # it doesn't, so comment the line or selection |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3165 | self.commentLineOrSelection() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3166 | else: |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3167 | # determine the start of the comment block |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3168 | begline = line |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3169 | while begline > 0 and \ |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3170 | self.text(begline - 1).strip().startswith(commentStr): |
1588
dccffd13be8d
Did some PEP-8 related corrections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1566
diff
changeset
|
3171 | begline -= 1 |
1500
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3172 | # determine the end of the comment block |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3173 | endline = line |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3174 | lines = self.lines() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3175 | while endline < lines and \ |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3176 | self.text(endline + 1).strip().startswith(commentStr): |
1588
dccffd13be8d
Did some PEP-8 related corrections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1566
diff
changeset
|
3177 | endline += 1 |
1500
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3178 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3179 | self.setSelection(begline, 0, endline, self.lineLength(endline)) |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3180 | self.uncommentLineOrSelection() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3181 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3182 | # reset the cursor |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3183 | self.setCursorPosition(line, index - len(commentStr)) |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3184 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3185 | def commentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3186 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3187 | Public slot to comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3188 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3189 | if self.lexer_ is None or not self.lexer_.canBlockComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3190 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3191 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3192 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3193 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3194 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3195 | self.insertAt(self.lexer_.commentStr(), line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3196 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3197 | self.insertAt(self.lexer_.commentStr(), line, self.indentation(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3198 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3199 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3200 | def uncommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3201 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3202 | Public slot to uncomment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3203 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3204 | if self.lexer_ is None or not self.lexer_.canBlockComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3205 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3206 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3207 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3208 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3209 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3210 | # check if line starts with our comment string (i.e. was commented |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3211 | # by our comment...() slots |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3212 | if not self.text(line).strip().startswith(commentStr): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3213 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3214 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3215 | # now remove the comment string |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3216 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3217 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3218 | self.setSelection(line, 0, line, len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3219 | else: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3220 | self.setSelection(line, self.indentation(line), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3221 | line, self.indentation(line) + len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3222 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3223 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3224 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3225 | def commentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3226 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3227 | Public slot to comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3228 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3229 | if self.lexer_ is None or not self.lexer_.canBlockComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3230 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3231 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3232 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3233 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3234 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3235 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3236 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3237 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3238 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3239 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3240 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3241 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3242 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3243 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3244 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3245 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3246 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3247 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3248 | self.insertAt(commentStr, line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3249 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3250 | self.insertAt(commentStr, line, self.indentation(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3251 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3252 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3253 | self.setSelection(lineFrom, 0, endLine + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3254 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3255 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3256 | def uncommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3257 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3258 | Public slot to uncomment the current selection. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3259 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3260 | if self.lexer_ is None or not self.lexer_.canBlockComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3261 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3262 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3263 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3264 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3265 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3266 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3267 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3268 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3269 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3270 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3271 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3272 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3273 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3274 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3275 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3276 | # iterate over the lines |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3277 | for line in range(lineFrom, endLine + 1): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3278 | # check if line starts with our comment string (i.e. was commented |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3279 | # by our comment...() slots |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3280 | if not self.text(line).strip().startswith(commentStr): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3281 | continue |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3282 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3283 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3284 | self.setSelection(line, 0, line, len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3285 | else: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3286 | self.setSelection(line, self.indentation(line), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3287 | line, self.indentation(line) + len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3288 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3289 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3290 | # adjust selection start |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3291 | if line == lineFrom: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3292 | indexFrom -= len(commentStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3293 | if indexFrom < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3294 | indexFrom = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3295 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3296 | # adjust selection end |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3297 | if line == lineTo: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3298 | indexTo -= len(commentStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3299 | if indexTo < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3300 | indexTo = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3301 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3302 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3303 | self.setSelection(lineFrom, indexFrom, lineTo, indexTo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3304 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3305 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3306 | def commentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3307 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3308 | Public slot to comment the current line or current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3309 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3310 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3311 | self.commentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3312 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3313 | self.commentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3314 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3315 | def uncommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3316 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3317 | Public slot to uncomment the current line or current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3318 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3319 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3320 | self.uncommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3321 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3322 | self.uncommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3323 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3324 | def streamCommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3325 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3326 | Public slot to stream comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3327 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3328 | if self.lexer_ is None or not self.lexer_.canStreamComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3329 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3330 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3331 | commentStr = self.lexer_.streamCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3332 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3333 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3334 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3335 | self.insertAt(commentStr['end'], line, self.lineLength(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3336 | self.insertAt(commentStr['start'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3337 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3338 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3339 | def streamCommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3340 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3341 | Public slot to comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3342 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3343 | if self.lexer_ is None or not self.lexer_.canStreamComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3344 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3345 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3346 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3347 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3348 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3349 | commentStr = self.lexer_.streamCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3350 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3351 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3352 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3353 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3354 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3355 | endIndex = self.lineLength(endLine) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3356 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3357 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3358 | endIndex = indexTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3359 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3360 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3361 | self.insertAt(commentStr['end'], endLine, endIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3362 | self.insertAt(commentStr['start'], lineFrom, indexFrom) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3363 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3364 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3365 | if indexTo > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3366 | indexTo += len(commentStr['end']) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3367 | if lineFrom == endLine: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3368 | indexTo += len(commentStr['start']) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3369 | self.setSelection(lineFrom, indexFrom, lineTo, indexTo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3370 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3371 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3372 | def streamCommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3373 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3374 | Public slot to stream comment the current line or current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3375 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3376 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3377 | self.streamCommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3378 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3379 | self.streamCommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3380 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3381 | def boxCommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3382 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3383 | Public slot to box comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3384 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3385 | if self.lexer_ is None or not self.lexer_.canBoxComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3386 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3387 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3388 | commentStr = self.lexer_.boxCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3389 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3390 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3391 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3392 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3393 | self.insertAt(eol, line, self.lineLength(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3394 | self.insertAt(commentStr['end'], line + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3395 | self.insertAt(commentStr['middle'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3396 | self.insertAt(eol, line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3397 | self.insertAt(commentStr['start'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3398 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3399 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3400 | def boxCommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3401 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3402 | Public slot to box comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3403 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3404 | if self.lexer_ is None or not self.lexer_.canBoxComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3405 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3406 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3407 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3408 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3409 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3410 | commentStr = self.lexer_.boxCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3411 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3412 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3413 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3414 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3415 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3416 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3417 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3418 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3419 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3420 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3421 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3422 | self.insertAt(commentStr['middle'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3423 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3424 | # now do the comments before and after the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3425 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3426 | self.insertAt(eol, endLine, self.lineLength(endLine)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3427 | self.insertAt(commentStr['end'], endLine + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3428 | self.insertAt(eol, lineFrom, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3429 | self.insertAt(commentStr['start'], lineFrom, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3430 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3431 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3432 | self.setSelection(lineFrom, 0, endLine + 3, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3433 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3434 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3435 | def boxCommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3436 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3437 | Public slot to box comment the current line or current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3438 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3439 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3440 | self.boxCommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3441 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3442 | self.boxCommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3443 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3444 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3445 | ## Indentation handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3446 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3447 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3448 | def __indentLine(self, indent=True): |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3449 | """ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3450 | Private method to indent or unindent the current line. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3451 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3452 | @param indent flag indicating an indent operation (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3453 | <br />If the flag is true, an indent operation is performed. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3454 | Otherwise the current line is unindented. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3455 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3456 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3457 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3458 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3459 | self.indent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3460 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3461 | self.unindent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3462 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3463 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3464 | self.setCursorPosition(line, index + self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3465 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3466 | self.setCursorPosition(line, index - self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3467 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3468 | def __indentSelection(self, indent=True): |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3469 | """ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3470 | Private method to indent or unindent the current selection. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3471 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3472 | @param indent flag indicating an indent operation (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3473 | <br />If the flag is true, an indent operation is performed. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3474 | Otherwise the current line is unindented. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3475 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3476 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3477 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3478 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3479 | # get the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3480 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3481 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3482 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3483 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3484 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3485 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3486 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3487 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3488 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3489 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3490 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3491 | self.indent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3492 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3493 | self.unindent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3494 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3495 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3496 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3497 | self.setSelection(lineFrom, indexFrom + self.indentationWidth(), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3498 | lineTo, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3499 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3500 | self.setSelection(lineFrom, indexFrom + self.indentationWidth(), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3501 | lineTo, indexTo + self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3502 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3503 | indexStart = indexFrom - self.indentationWidth() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3504 | if indexStart < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3505 | indexStart = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3506 | indexEnd = indexTo - self.indentationWidth() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3507 | if indexEnd < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3508 | indexEnd = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3509 | self.setSelection(lineFrom, indexStart, lineTo, indexEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3510 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3511 | def indentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3512 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3513 | Public slot to indent the current line or current selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3514 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3515 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3516 | self.__indentSelection(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3517 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3518 | self.__indentLine(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3519 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3520 | def unindentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3521 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3522 | Public slot to unindent the current line or current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3523 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3524 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3525 | self.__indentSelection(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3526 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3527 | self.__indentLine(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3528 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3529 | def smartIndentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3530 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3531 | Public slot to indent current line smartly. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3532 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3533 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3534 | if self.lexer_ and self.lexer_.hasSmartIndent(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3535 | self.lexer_.smartIndentSelection(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3536 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3537 | self.__indentSelection(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3538 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3539 | if self.lexer_ and self.lexer_.hasSmartIndent(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3540 | self.lexer_.smartIndentLine(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3541 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3542 | self.__indentLine(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3543 | |
1897
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
3544 | def gotoLine(self, line, pos=1, firstVisible=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3545 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3546 | Public slot to jump to the beginning of a line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3547 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3548 | @param line line number to go to (integer) |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
3549 | @keyparam pos position in line to go to (integer) |
1897
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
3550 | @keyparam firstVisible flag indicating to make the line the first |
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
3551 | visible line (boolean) |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
3552 | """ |
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
3553 | self.setCursorPosition(line - 1, pos - 1) |
1897
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
3554 | if firstVisible: |
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
3555 | self.ensureVisibleTop(line) |
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
3556 | else: |
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
3557 | self.ensureVisible(line) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3558 | |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3559 | def __textChanged(self): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3560 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3561 | Private slot to handle a change of the editor text. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3562 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3563 | This slot defers the handling to the next time the event loop |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3564 | is run in order to ensure, that cursor position has been updated |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3565 | by the underlying Scintilla editor. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3566 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3567 | QTimer.singleShot(0, self.__saveLastEditPosition) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3568 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3569 | def __saveLastEditPosition(self): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3570 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3571 | Private slot to record the last edit position. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3572 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3573 | self.__lastEditPosition = self.getCursorPosition() |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3574 | self.lastEditPositionAvailable.emit() |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3575 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3576 | def isLastEditPositionAvailable(self): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3577 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3578 | Public method to check, if a last edit position is available. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3579 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3580 | @return flag indicating availability (boolean) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3581 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3582 | return self.__lastEditPosition is not None |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3583 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3584 | def gotoLastEditPosition(self): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3585 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3586 | Public method to move the cursor to the last edit position. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3587 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3588 | self.setCursorPosition(*self.__lastEditPosition) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3589 | self.ensureVisible(self.__lastEditPosition[0]) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3590 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3591 | def gotoMethodClass(self, goUp=False): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3592 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3593 | Public method to go to the next Python method or class definition. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3594 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3595 | if self.isPy3File() or self.isPy2File() or self.isRubyFile(): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3596 | lineNo = self.getCursorPosition()[0] |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3597 | line = self.text(lineNo) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3598 | if line.strip().startswith(("class ", "def ", "module ")): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3599 | if goUp: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3600 | lineNo -= 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3601 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3602 | lineNo += 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3603 | while True: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3604 | if goUp and lineNo < 0: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3605 | self.setCursorPosition(0, 0) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3606 | self.ensureVisible(0) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3607 | return |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3608 | elif not goUp and lineNo == self.lines(): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3609 | lineNo = self.lines() - 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3610 | self.setCursorPosition(lineNo, self.lineLength(lineNo)) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3611 | self.ensureVisible(lineNo) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3612 | return |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3613 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3614 | line = self.text(lineNo) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3615 | if line.strip().startswith(("class ", "def ", "module ")): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3616 | # try 'def ' first because it occurs more often |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3617 | first = line.find("def ") |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3618 | if first > -1: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3619 | first += 4 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3620 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3621 | first = line.find("class ") |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3622 | if first > -1: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3623 | first += 6 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3624 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3625 | first = line.find("module ") + 7 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3626 | match = re.search("[:(]", line) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3627 | if match: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3628 | end = match.start() |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3629 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3630 | end = self.lineLength(lineNo) - 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3631 | self.setSelection(lineNo, first, lineNo, end) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3632 | self.ensureVisible(lineNo) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3633 | return |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3634 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3635 | if goUp: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3636 | lineNo -= 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3637 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3638 | lineNo += 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3639 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
3640 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3641 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3642 | ## Setup methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3643 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3644 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3645 | def readSettings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3646 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3647 | Public slot to read the settings into our lexer. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3648 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3649 | # read the lexer settings and reinit the properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3650 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3651 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3652 | self.lexer_.initProperties() |
1566
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
3653 | |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
3654 | self.lexer_.setDefaultColor(self.lexer_.color(0)) |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
3655 | self.lexer_.setDefaultPaper(self.lexer_.paper(0)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3656 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3657 | # read the typing completer settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3658 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3659 | self.completer.readSettings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3660 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3661 | # set the margins layout |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3662 | if QSCINTILLA_VERSION() >= 0x020301: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3663 | self.__unifiedMargins = Preferences.getEditor("UnifiedMargins") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3664 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3665 | # set the line marker colours |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3666 | self.__setLineMarkerColours() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3667 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3668 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3669 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3670 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3671 | # set margin 0 and 2 configuration |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3672 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3673 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3674 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3675 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3676 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3677 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3678 | # set the autosave flags |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3679 | self.autosaveEnabled = Preferences.getEditor("AutosaveInterval") > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3680 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3681 | if Preferences.getEditor("MiniContextMenu") != self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3682 | # regenerate context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3683 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3684 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3685 | # set checked context menu items |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3686 | self.menuActs["AutoCompletionEnable"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3687 | self.autoCompletionThreshold() != -1) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3688 | self.menuActs["MonospacedFont"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3689 | self.useMonospaced) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3690 | self.menuActs["AutosaveEnable"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3691 | self.autosaveEnabled and not self.autosaveManuallyDisabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3692 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3693 | # regenerate the margins context menu(s) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3694 | self.__initContextMenuMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3695 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3696 | if Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3697 | self.__markOccurrencesTimer.setInterval( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3698 | Preferences.getEditor("MarkOccurrencesTimeout")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3699 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3700 | self.__markOccurrencesTimer.stop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3701 | self.clearSearchIndicators() |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
3702 | |
1353
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
3703 | if Preferences.getEditor("OnlineSyntaxCheck"): |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
3704 | self.__onlineSyntaxCheckTimer.setInterval( |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
3705 | Preferences.getEditor("OnlineSyntaxCheckInterval") * 1000) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
3706 | else: |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
3707 | self.__onlineSyntaxCheckTimer.stop() |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
3708 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3709 | if Preferences.getEditor("OnlineChangeTrace"): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3710 | self.__onlineChangeTraceTimer.setInterval( |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3711 | Preferences.getEditor("OnlineChangeTraceInterval")) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3712 | else: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3713 | self.__onlineChangeTraceTimer.stop() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3714 | self.__deleteAllChangeMarkers() |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
3715 | self.markerDefine(self.__createChangeMarkerPixmap( |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
3716 | "OnlineChangeTraceMarkerUnsaved"), self.__changeMarkerUnsaved) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
3717 | self.markerDefine(self.__createChangeMarkerPixmap( |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
3718 | "OnlineChangeTraceMarkerSaved"), self.__changeMarkerSaved) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3719 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
3720 | # refresh the annotations display |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
3721 | self.__refreshAnnotations() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3722 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3723 | def __setLineMarkerColours(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3724 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3725 | Private method to set the line marker colours. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3726 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3727 | self.setMarkerForegroundColor(Preferences.getEditorColour("CurrentMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3728 | self.currentline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3729 | self.setMarkerBackgroundColor(Preferences.getEditorColour("CurrentMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3730 | self.currentline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3731 | self.setMarkerForegroundColor(Preferences.getEditorColour("ErrorMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3732 | self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3733 | self.setMarkerBackgroundColor(Preferences.getEditorColour("ErrorMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3734 | self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3735 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3736 | def __setMarginsDisplay(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3737 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3738 | Private method to configure margins 0 and 2. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3739 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3740 | # set the settings for all margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3741 | self.setMarginsFont(Preferences.getEditorOtherFonts("MarginsFont")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3742 | self.setMarginsForegroundColor(Preferences.getEditorColour("MarginsForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3743 | self.setMarginsBackgroundColor(Preferences.getEditorColour("MarginsBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3744 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3745 | # reset standard margins settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3746 | for margin in range(5): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3747 | self.setMarginLineNumbers(margin, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3748 | self.setMarginMarkerMask(margin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3749 | self.setMarginWidth(margin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3750 | self.setMarginSensitivity(margin, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3751 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3752 | # set marker margin(s) settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3753 | if self.__unifiedMargins: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3754 | margin1Mask = (1 << self.breakpoint) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3755 | (1 << self.cbreakpoint) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3756 | (1 << self.tbreakpoint) | \ |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3757 | (1 << self.tcbreakpoint) | \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3758 | (1 << self.dbreakpoint) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3759 | (1 << self.currentline) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3760 | (1 << self.errorline) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3761 | (1 << self.bookmark) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3762 | (1 << self.syntaxerror) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3763 | (1 << self.notcovered) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3764 | (1 << self.taskmarker) | \ |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3765 | (1 << self.warning) | \ |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
3766 | (1 << self.__changeMarkerUnsaved) | \ |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
3767 | (1 << self.__changeMarkerSaved) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3768 | self.setMarginWidth(1, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3769 | self.setMarginSensitivity(1, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3770 | self.setMarginMarkerMask(1, margin1Mask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3771 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3772 | self.__linenoMargin = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3773 | self.__foldMargin = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3774 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3775 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3776 | self.__bmMargin = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3777 | self.__linenoMargin = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3778 | self.__bpMargin = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3779 | self.__foldMargin = 3 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3780 | self.__indicMargin = 4 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3781 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3782 | marginBmMask = (1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3783 | self.setMarginWidth(self.__bmMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3784 | self.setMarginSensitivity(self.__bmMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3785 | self.setMarginMarkerMask(self.__bmMargin, marginBmMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3786 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3787 | marginBpMask = (1 << self.breakpoint) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3788 | (1 << self.cbreakpoint) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3789 | (1 << self.tbreakpoint) | \ |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3790 | (1 << self.tcbreakpoint) | \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3791 | (1 << self.dbreakpoint) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3792 | (1 << self.currentline) | \ |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3793 | (1 << self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3794 | self.setMarginWidth(self.__bpMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3795 | self.setMarginSensitivity(self.__bpMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3796 | self.setMarginMarkerMask(self.__bpMargin, marginBpMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3797 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3798 | marginIndicMask = (1 << self.syntaxerror) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3799 | (1 << self.notcovered) | \ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3800 | (1 << self.taskmarker) | \ |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3801 | (1 << self.warning) | \ |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
3802 | (1 << self.__changeMarkerUnsaved) | \ |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
3803 | (1 << self.__changeMarkerSaved) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3804 | self.setMarginWidth(self.__indicMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3805 | self.setMarginSensitivity(self.__indicMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3806 | self.setMarginMarkerMask(self.__indicMargin, marginIndicMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3807 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3808 | # set linenumber margin settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3809 | linenoMargin = Preferences.getEditor("LinenoMargin") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3810 | self.setMarginLineNumbers(self.__linenoMargin, linenoMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3811 | if linenoMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3812 | self.setMarginWidth(self.__linenoMargin, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3813 | ' ' + '8' * Preferences.getEditor("LinenoWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3814 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3815 | self.setMarginWidth(self.__linenoMargin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3816 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3817 | # set folding margin settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3818 | if Preferences.getEditor("FoldingMargin"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3819 | self.setMarginWidth(self.__foldMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3820 | folding = Preferences.getEditor("FoldingStyle") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3821 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3822 | folding = QsciScintilla.FoldStyle(folding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3823 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3824 | pass |
342
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3825 | self.setFolding(folding, self.__foldMargin) |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3826 | self.setFoldMarginColors( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3827 | Preferences.getEditorColour("FoldmarginBackground"), |
342
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3828 | Preferences.getEditorColour("FoldmarginBackground")) |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3829 | self.setFoldMarkersColors( |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3830 | Preferences.getEditorColour("FoldMarkersForeground"), |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3831 | Preferences.getEditorColour("FoldMarkersBackground")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3832 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3833 | self.setMarginWidth(self.__foldMargin, 0) |
342
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3834 | self.setFolding(QsciScintilla.NoFoldStyle, self.__foldMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3835 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3836 | def __setTextDisplay(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3837 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3838 | Private method to configure the text display. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3839 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3840 | self.setTabWidth(Preferences.getEditor("TabWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3841 | self.setIndentationWidth(Preferences.getEditor("IndentWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3842 | if self.lexer_ and self.lexer_.alwaysKeepTabs(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3843 | self.setIndentationsUseTabs(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3844 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3845 | self.setIndentationsUseTabs(Preferences.getEditor("TabForIndentation")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3846 | self.setTabIndents(Preferences.getEditor("TabIndents")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3847 | self.setBackspaceUnindents(Preferences.getEditor("TabIndents")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3848 | self.setIndentationGuides(Preferences.getEditor("IndentationGuides")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3849 | if Preferences.getEditor("ShowWhitespace"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3850 | self.setWhitespaceVisibility(QsciScintilla.WsVisible) |
939
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3851 | try: |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3852 | self.setWhitespaceForegroundColor( |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3853 | Preferences.getEditorColour("WhitespaceForeground")) |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3854 | self.setWhitespaceBackgroundColor( |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3855 | Preferences.getEditorColour("WhitespaceBackground")) |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3856 | self.setWhitespaceSize( |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3857 | Preferences.getEditor("WhitespaceSize")) |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3858 | except AttributeError: |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3859 | # QScintilla before 2.5 doesn't support this |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
3860 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3861 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3862 | self.setWhitespaceVisibility(QsciScintilla.WsInvisible) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3863 | self.setEolVisibility(Preferences.getEditor("ShowEOL")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3864 | self.setAutoIndent(Preferences.getEditor("AutoIndentation")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3865 | if Preferences.getEditor("BraceHighlighting"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3866 | self.setBraceMatching(QsciScintilla.SloppyBraceMatch) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3867 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3868 | self.setBraceMatching(QsciScintilla.NoBraceMatch) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3869 | self.setMatchedBraceForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3870 | Preferences.getEditorColour("MatchingBrace")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3871 | self.setMatchedBraceBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3872 | Preferences.getEditorColour("MatchingBraceBack")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3873 | self.setUnmatchedBraceForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3874 | Preferences.getEditorColour("NonmatchingBrace")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3875 | self.setUnmatchedBraceBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3876 | Preferences.getEditorColour("NonmatchingBraceBack")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3877 | if Preferences.getEditor("CustomSelectionColours"): |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3878 | self.setSelectionBackgroundColor( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3879 | Preferences.getEditorColour("SelectionBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3880 | else: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3881 | self.setSelectionBackgroundColor( |
2084
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2077
diff
changeset
|
3882 | QApplication.palette().color(QPalette.Highlight)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3883 | if Preferences.getEditor("ColourizeSelText"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3884 | self.resetSelectionForegroundColor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3885 | elif Preferences.getEditor("CustomSelectionColours"): |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3886 | self.setSelectionForegroundColor( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3887 | Preferences.getEditorColour("SelectionForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3888 | else: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3889 | self.setSelectionForegroundColor( |
2084
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2077
diff
changeset
|
3890 | QApplication.palette().color(QPalette.HighlightedText)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3891 | self.setSelectionToEol(Preferences.getEditor("ExtendSelectionToEol")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3892 | self.setCaretForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3893 | Preferences.getEditorColour("CaretForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3894 | self.setCaretLineBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3895 | Preferences.getEditorColour("CaretLineBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3896 | self.setCaretLineVisible(Preferences.getEditor("CaretLineVisible")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3897 | self.caretWidth = Preferences.getEditor("CaretWidth") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3898 | self.setCaretWidth(self.caretWidth) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3899 | self.useMonospaced = Preferences.getEditor("UseMonospacedFont") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3900 | self.setMonospaced(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3901 | edgeMode = Preferences.getEditor("EdgeMode") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3902 | edge = QsciScintilla.EdgeMode(edgeMode) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3903 | self.setEdgeMode(edge) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3904 | if edgeMode: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3905 | self.setEdgeColumn(Preferences.getEditor("EdgeColumn")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3906 | self.setEdgeColor(Preferences.getEditorColour("Edge")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3907 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3908 | if Preferences.getEditor("WrapLongLines"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3909 | self.setWrapMode(QsciScintilla.WrapWord) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3910 | self.setWrapVisualFlags( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3911 | QsciScintilla.WrapFlagByBorder, QsciScintilla.WrapFlagByBorder) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3912 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3913 | self.setWrapMode(QsciScintilla.WrapNone) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
3914 | self.setWrapVisualFlags( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3915 | QsciScintilla.WrapFlagNone, QsciScintilla.WrapFlagNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3916 | |
230
2cde09c26384
Added code to configure the zoom factor a file is opened with.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
3917 | self.zoomTo(Preferences.getEditor("ZoomFactor")) |
2cde09c26384
Added code to configure the zoom factor a file is opened with.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
3918 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3919 | self.searchIndicator = QsciScintilla.INDIC_CONTAINER |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3920 | self.indicatorDefine(self.searchIndicator, QsciScintilla.INDIC_BOX, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3921 | Preferences.getEditorColour("SearchMarkers")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3922 | if not Preferences.getEditor("SearchMarkersEnabled") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3923 | not Preferences.getEditor("QuickSearchMarkersEnabled") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3924 | not Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3925 | self.clearAllIndicators(self.searchIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3926 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3927 | self.spellingIndicator = QsciScintilla.INDIC_CONTAINER + 1 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3928 | self.indicatorDefine(self.spellingIndicator, QsciScintilla.INDIC_SQUIGGLE, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3929 | Preferences.getEditorColour("SpellingMarkers")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3930 | self.__setSpelling() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3931 | |
404
44a541bea034
Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
342
diff
changeset
|
3932 | self.setCursorFlashTime(QApplication.cursorFlashTime()) |
44a541bea034
Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
342
diff
changeset
|
3933 | |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
3934 | try: |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
3935 | if Preferences.getEditor("AnnotationsEnabled"): |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
3936 | self.setAnnotationDisplay(QsciScintilla.AnnotationBoxed) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
3937 | else: |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
3938 | self.setAnnotationDisplay(QsciScintilla.AnnotationHidden) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
3939 | except AttributeError: |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
3940 | pass |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
3941 | self.__setAnnotationStyles() |
1566
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
3942 | |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
3943 | if Preferences.getEditor("OverrideEditAreaColours"): |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
3944 | self.setColor(Preferences.getEditorColour("EditAreaForeground")) |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
3945 | self.setPaper(Preferences.getEditorColour("EditAreaBackground")) |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
3946 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3947 | def __setEolMode(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3948 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3949 | Private method to configure the eol mode of the editor. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3950 | """ |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3951 | if self.fileName and \ |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3952 | self.project.isOpen() and \ |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3953 | self.project.isProjectFile(self.fileName): |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3954 | self.setEolModeByEolString(self.project.getEolString()) |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3955 | else: |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3956 | eolMode = Preferences.getEditor("EOLMode") |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3957 | eolMode = QsciScintilla.EolMode(eolMode) |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3958 | self.setEolMode(eolMode) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3959 | self.__eolChanged() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3960 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3961 | def __setAutoCompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3962 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3963 | Private method to configure the autocompletion function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3964 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3965 | if self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3966 | self.setAutoCompletionFillupsEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3967 | Preferences.getEditor("AutoCompletionFillups")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3968 | self.setAutoCompletionCaseSensitivity( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3969 | Preferences.getEditor("AutoCompletionCaseSensitivity")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3970 | self.setAutoCompletionReplaceWord( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3971 | Preferences.getEditor("AutoCompletionReplaceWord")) |
971
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
3972 | try: |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
3973 | self.setAutoCompletionUseSingle( |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
3974 | Preferences.getEditor("AutoCompletionShowSingle")) |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
3975 | except AttributeError: |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
3976 | self.setAutoCompletionShowSingle( |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
3977 | Preferences.getEditor("AutoCompletionShowSingle")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3978 | autoCompletionSource = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3979 | if autoCompletionSource == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3980 | self.setAutoCompletionSource(QsciScintilla.AcsDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3981 | elif autoCompletionSource == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3982 | self.setAutoCompletionSource(QsciScintilla.AcsAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3983 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3984 | self.setAutoCompletionSource(QsciScintilla.AcsAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3985 | if Preferences.getEditor("AutoCompletionEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3986 | if self.__acHookFunction is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3987 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3988 | Preferences.getEditor("AutoCompletionThreshold")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3989 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3990 | self.setAutoCompletionThreshold(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3991 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3992 | self.setAutoCompletionThreshold(-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3993 | self.setAutoCompletionSource(QsciScintilla.AcsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3994 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3995 | def __setCallTips(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3996 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3997 | Private method to configure the calltips function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3998 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3999 | if Preferences.getEditor("CallTipsEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4000 | self.setCallTipsBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4001 | Preferences.getEditorColour("CallTipsBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4002 | self.setCallTipsVisible(Preferences.getEditor("CallTipsVisible")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4003 | calltipsStyle = Preferences.getEditor("CallTipsStyle") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4004 | if calltipsStyle == QsciScintilla.CallTipsNoContext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4005 | self.setCallTipsStyle(QsciScintilla.CallTipsNoContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4006 | elif calltipsStyle == QsciScintilla.CallTipsNoAutoCompletionContext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4007 | self.setCallTipsStyle(QsciScintilla.CallTipsNoAutoCompletionContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4008 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4009 | self.setCallTipsStyle(QsciScintilla.CallTipsContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4010 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4011 | self.setCallTipsStyle(QsciScintilla.CallTipsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4012 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4013 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4014 | ## Autocompletion handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4015 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4016 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4017 | def canAutoCompleteFromAPIs(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4018 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4019 | Public method to check for API availablity. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4020 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4021 | @return flag indicating autocompletion from APIs is available (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4022 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4023 | return self.acAPI |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4024 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4025 | def autoCompleteQScintilla(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4026 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4027 | Public method to perform an autocompletion using QScintilla methods. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4028 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4029 | acs = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4030 | if acs == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4031 | self.autoCompleteFromDocument() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4032 | elif acs == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4033 | self.autoCompleteFromAPIs() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4034 | elif acs == QsciScintilla.AcsAll: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4035 | self.autoCompleteFromAll() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4036 | else: |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
4037 | E5MessageBox.information(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4038 | self.trUtf8("Autocompletion"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4039 | self.trUtf8("""Autocompletion is not available because""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4040 | """ there is no autocompletion source set.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4041 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4042 | def setAutoCompletionEnabled(self, enable): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4043 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4044 | Public method to enable/disable autocompletion. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4045 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4046 | @param enable flag indicating the desired autocompletion status (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4047 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4048 | if enable: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4049 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4050 | Preferences.getEditor("AutoCompletionThreshold")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4051 | autoCompletionSource = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4052 | if autoCompletionSource == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4053 | self.setAutoCompletionSource(QsciScintilla.AcsDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4054 | elif autoCompletionSource == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4055 | self.setAutoCompletionSource(QsciScintilla.AcsAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4056 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4057 | self.setAutoCompletionSource(QsciScintilla.AcsAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4058 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4059 | self.setAutoCompletionThreshold(-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4060 | self.setAutoCompletionSource(QsciScintilla.AcsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4061 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4062 | def __toggleAutoCompletionEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4063 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4064 | Private slot to handle the Enable Autocompletion context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4065 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4066 | if self.menuActs["AutoCompletionEnable"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4067 | self.setAutoCompletionEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4068 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4069 | self.setAutoCompletionEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4070 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4071 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4072 | ## Support for autocompletion hook methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4073 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4074 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4075 | def __charAdded(self, charNumber): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4076 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4077 | Public slot called to handle the user entering a character. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4078 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4079 | @param charNumber value of the character entered (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4080 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4081 | if self.isListActive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4082 | char = chr(charNumber) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4083 | if self.__isStartChar(char): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4084 | self.cancelList() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4085 | self.autoComplete(auto=True, context=True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4086 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4087 | elif char == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4088 | self.cancelList() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4089 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4090 | if self.callTipsStyle() != QsciScintilla.CallTipsNone and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4091 | self.lexer_ is not None and chr(charNumber) in '()': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4092 | self.callTip() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4093 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4094 | if not self.isCallTipActive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4095 | char = chr(charNumber) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4096 | if self.__isStartChar(char): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4097 | self.autoComplete(auto=True, context=True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4098 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4099 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4100 | line, col = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4101 | txt = self.getWordLeft(line, col) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4102 | if len(txt) >= Preferences.getEditor("AutoCompletionThreshold"): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4103 | self.autoComplete(auto=True, context=False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4104 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4105 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4106 | def __isStartChar(self, ch): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4107 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4108 | Private method to check, if a character is an autocompletion start character. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4109 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4110 | @param ch character to be checked (one character string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4111 | @return flag indicating the result (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4112 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4113 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4114 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4115 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4116 | wseps = self.lexer_.autoCompletionWordSeparators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4117 | for wsep in wseps: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4118 | if wsep.endswith(ch): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4119 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4120 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4121 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4122 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4123 | def setAutoCompletionHook(self, func): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4124 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4125 | Public method to set an autocompletion hook. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4126 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4127 | @param func Function to be set to handle autocompletion. func |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4128 | should be a function taking a reference to the editor and |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4129 | a boolean indicating to complete a context. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4130 | """ |
1063
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4131 | if self.__acHookFunction is not None: |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4132 | # there is another provider registered already |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4133 | E5MessageBox.warning(self, |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4134 | self.trUtf8("Activating Auto-Completion Provider"), |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4135 | self.trUtf8("""Auto-completion provider cannot be connected""" |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4136 | """ because there is already another one active.""" |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4137 | """ Please check your configuration.""")) |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4138 | return |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4139 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4140 | if self.autoCompletionThreshold() > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4141 | self.setAutoCompletionThreshold(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4142 | self.__acHookFunction = func |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4143 | self.SCN_CHARADDED.connect(self.__charAdded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4144 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4145 | def unsetAutoCompletionHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4146 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4147 | Public method to unset a previously installed autocompletion hook. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4148 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4149 | self.SCN_CHARADDED.disconnect(self.__charAdded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4150 | self.__acHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4151 | if self.autoCompletionThreshold() == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4152 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4153 | Preferences.getEditor("AutoCompletionThreshold")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4154 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4155 | def autoCompletionHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4156 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4157 | Public method to get the autocompletion hook function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4158 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4159 | @return function set by setAutoCompletionHook() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4160 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4161 | return self.__acHookFunction |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4162 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4163 | def autoComplete(self, auto=False, context=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4164 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4165 | Public method to start autocompletion. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4166 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4167 | @keyparam auto flag indicating a call from the __charAdded method (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4168 | @keyparam context flag indicating to complete a context (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4169 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4170 | if auto and self.autoCompletionThreshold() == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4171 | # autocompletion is disabled |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4172 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4173 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4174 | if self.__acHookFunction is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4175 | self.__acHookFunction(self, context) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4176 | elif not auto: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4177 | self.autoCompleteQScintilla() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4178 | elif self.autoCompletionSource() != QsciScintilla.AcsNone: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4179 | self.autoCompleteQScintilla() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4180 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4181 | def callTip(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4182 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4183 | Public method to show calltips. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4184 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4185 | if self.__ctHookFunction is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4186 | self.__callTip() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4187 | else: |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
4188 | super().callTip() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4189 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4190 | def __callTip(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4191 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4192 | Private method to show call tips provided by a plugin. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4193 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4194 | pos = self.currentPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4195 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4196 | # move backward to the start of the current calltip working out which argument |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4197 | # to highlight |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4198 | commas = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4199 | found = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4200 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4201 | while ch: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4202 | if ch == ',': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4203 | commas += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4204 | elif ch == ')': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4205 | depth = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4206 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4207 | # ignore everything back to the start of the corresponding parenthesis |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4208 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4209 | while ch: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4210 | if ch == ')': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4211 | depth += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4212 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4213 | depth -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4214 | if depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4215 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4216 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4217 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4218 | found = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4219 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4220 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4221 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4222 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4223 | self.SendScintilla(QsciScintilla.SCI_CALLTIPCANCEL) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4224 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4225 | if not found: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4226 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4227 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4228 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4229 | callTips = self.__ctHookFunction(self, pos, commas) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4230 | except TypeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4231 | # for backward compatibility |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4232 | callTips = self.__ctHookFunction(self, pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4233 | if len(callTips) == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4234 | if Preferences.getEditor("CallTipsScintillaOnFail"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4235 | # try QScintilla calltips |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
4236 | super().callTip() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4237 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4238 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4239 | ctshift = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4240 | for ct in callTips: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4241 | shift = ct.index("(") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4242 | if ctshift < shift: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4243 | ctshift = shift |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4244 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4245 | cv = self.callTipsVisible() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4246 | if cv > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4247 | # this is just a safe guard |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4248 | ct = self._encodeString("\n".join(callTips[:cv])) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4249 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4250 | # until here and unindent below |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4251 | ct = self._encodeString("\n".join(callTips)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4252 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4253 | self.SendScintilla(QsciScintilla.SCI_CALLTIPSHOW, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4254 | self.__adjustedCallTipPosition(ctshift, pos), ct) |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4255 | if b'\n' in ct: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4256 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4257 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4258 | # Highlight the current argument |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4259 | if commas == 0: |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4260 | astart = ct.find(b'(') |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4261 | else: |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4262 | astart = ct.find(b',') |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4263 | commas -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4264 | while astart != -1 and commas > 0: |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4265 | astart = ct.find(b',', astart + 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4266 | commas -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4267 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4268 | if astart == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4269 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4270 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4271 | depth = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4272 | for aend in range(astart + 1, len(ct)): |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4273 | ch = ct[aend:aend + 1] |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4274 | |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4275 | if ch == b',' and depth == 0: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4276 | break |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4277 | elif ch == b'(': |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4278 | depth += 1 |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4279 | elif ch == b')': |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4280 | if depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4281 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4282 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4283 | depth -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4284 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4285 | if astart != aend: |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
4286 | self.SendScintilla(QsciScintilla.SCI_CALLTIPSETHLT, astart + 1, aend) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4287 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4288 | def __adjustedCallTipPosition(self, ctshift, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4289 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4290 | Private method to calculate an adjusted position for showing calltips. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4291 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4292 | @param ctshift amount the calltip shall be shifted (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4293 | @param pos position into the text (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4294 | @return new position for the calltip (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4295 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4296 | ct = pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4297 | if ctshift: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4298 | ctmin = self.SendScintilla(QsciScintilla.SCI_POSITIONFROMLINE, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4299 | self.SendScintilla(QsciScintilla.SCI_LINEFROMPOSITION, ct)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4300 | if ct - ctshift < ctmin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4301 | ct = ctmin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4302 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4303 | ct = ct - ctshift |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4304 | return ct |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4305 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4306 | def setCallTipHook(self, func): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4307 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4308 | Public method to set a calltip hook. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4309 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4310 | @param func Function to be set to determine calltips. func |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4311 | should be a function taking a reference to the editor, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4312 | a position into the text and the amount of commas to the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4313 | left of the cursor. It should return the possible |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4314 | calltips as a list of strings. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4315 | """ |
1063
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4316 | if self.__ctHookFunction is not None: |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4317 | # there is another provider registered already |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4318 | E5MessageBox.warning(self, |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4319 | self.trUtf8("Activating Calltip Provider"), |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4320 | self.trUtf8("""Calltip provider cannot be connected""" |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4321 | """ because there is already another one active.""" |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4322 | """ Please check your configuration.""")) |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4323 | return |
a0afd409c566
Added code to check, if there is an auto-completion/calltip provider connected already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1002
diff
changeset
|
4324 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4325 | self.__ctHookFunction = func |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4326 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4327 | def unsetCallTipHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4328 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4329 | Public method to unset a calltip hook. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4330 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4331 | self.__ctHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4332 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4333 | def callTipHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4334 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4335 | Public method to get the calltip hook function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4336 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4337 | @return function set by setCallTipHook() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4338 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4339 | return self.__ctHookFunction |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4340 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4341 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4342 | ## Methods needed by the context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4343 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4344 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4345 | def __marginNumber(self, xPos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4346 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4347 | Private method to calculate the margin number based on a x position. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4348 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4349 | @param xPos x position (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4350 | @return margin number (integer, -1 for no margin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4351 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4352 | width = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4353 | for margin in range(5): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4354 | width += self.marginWidth(margin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4355 | if xPos <= width: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4356 | return margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4357 | return -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4358 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4359 | def contextMenuEvent(self, evt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4360 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4361 | Private method implementing the context menu event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4362 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4363 | @param evt the context menu event (QContextMenuEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4364 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4365 | evt.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4366 | if self.__marginNumber(evt.x()) == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4367 | self.spellingMenuPos = self.positionFromPoint(evt.pos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4368 | if self.spellingMenuPos >= 0 and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4369 | self.spell is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4370 | self.hasIndicator(self.spellingIndicator, self.spellingMenuPos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4371 | self.spellingMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4372 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4373 | self.menu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4374 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4375 | self.line = self.lineAt(evt.pos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4376 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4377 | self.marginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4378 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4379 | if self.__marginNumber(evt.x()) in [self.__bmMargin, self.__linenoMargin]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4380 | self.bmMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4381 | elif self.__marginNumber(evt.x()) == self.__bpMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4382 | self.bpMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4383 | elif self.__marginNumber(evt.x()) == self.__indicMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4384 | self.indicMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4385 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4386 | def __showContextMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4387 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4388 | Private slot handling the aboutToShow signal of the context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4389 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4390 | self.menuActs["Save"].setEnabled(self.isModified()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4391 | self.menuActs["Undo"].setEnabled(self.isUndoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4392 | self.menuActs["Redo"].setEnabled(self.isRedoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4393 | self.menuActs["Revert"].setEnabled(self.isModified()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4394 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4395 | self.menuActs["Cut"].setEnabled(self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4396 | self.menuActs["Copy"].setEnabled(self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4397 | if not self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4398 | if self.fileName and \ |
1762
307393ebe9c6
Some little optimisations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1758
diff
changeset
|
4399 | (self.isPy3File() or self.isPy2File()): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4400 | self.menuActs["Show"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4401 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4402 | self.menuActs["Show"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4403 | if self.fileName and \ |
1762
307393ebe9c6
Some little optimisations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1758
diff
changeset
|
4404 | (self.isPy3File() or self.isPy2File() or self.isRubyFile()): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4405 | self.menuActs["Diagrams"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4406 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4407 | self.menuActs["Diagrams"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4408 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4409 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4410 | self.menuActs["Comment"].setEnabled(self.lexer_.canBlockComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4411 | self.menuActs["Uncomment"].setEnabled(self.lexer_.canBlockComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4412 | self.menuActs["StreamComment"].setEnabled(self.lexer_.canStreamComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4413 | self.menuActs["BoxComment"].setEnabled(self.lexer_.canBoxComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4414 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4415 | self.menuActs["Comment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4416 | self.menuActs["Uncomment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4417 | self.menuActs["StreamComment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4418 | self.menuActs["BoxComment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4419 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4420 | self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4421 | self.menuActs["TypingAidsEnabled"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4422 | self.completer is not None and self.completer.isEnabled()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4423 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4424 | spellingAvailable = SpellChecker.isAvailable() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4425 | self.menuActs["SpellCheck"].setEnabled(spellingAvailable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4426 | self.menuActs["SpellCheckSelection"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4427 | spellingAvailable and self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4428 | self.menuActs["SpellCheckRemove"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4429 | spellingAvailable and self.spellingMenuPos >= 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4430 | |
1299
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4431 | if self.menuActs["OpenRejections"]: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4432 | if self.fileName: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4433 | rej = "{0}.rej".format(self.fileName) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4434 | self.menuActs["OpenRejections"].setEnabled(os.path.exists(rej)) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4435 | else: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4436 | self.menuActs["OpenRejections"].setEnabled(False) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4437 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4438 | self.showMenu.emit("Main", self.menu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4439 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4440 | def __showContextMenuAutocompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4441 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4442 | Private slot called before the autocompletion menu is shown. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4443 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4444 | self.menuActs["acDynamic"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4445 | self.acAPI or self.__acHookFunction is not None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4446 | self.menuActs["acAPI"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4447 | self.menuActs["acAPIDocument"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4448 | self.menuActs["calltip"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4449 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4450 | self.showMenu.emit("Autocompletion", self.autocompletionMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4451 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4452 | def __showContextMenuShow(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4453 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4454 | Private slot called before the show menu is shown. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4455 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4456 | prEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4457 | coEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4458 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4459 | # first check if the file belongs to a project |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4460 | if self.project.isOpen() and self.project.isProjectSource(self.fileName): |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4461 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4462 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4463 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4464 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4465 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4466 | prEnable = prEnable or \ |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4467 | os.path.isfile("{0}.profile".format(basename)) or \ |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4468 | os.path.isfile("{0}.profile".format(tbasename)) |
1491
985c5abc8226
Corrected a few issues related to showing the coverage context menu items.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1474
diff
changeset
|
4469 | coEnable = (coEnable or \ |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4470 | os.path.isfile("{0}.coverage".format(basename)) or \ |
1491
985c5abc8226
Corrected a few issues related to showing the coverage context menu items.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1474
diff
changeset
|
4471 | os.path.isfile("{0}.coverage".format(tbasename))) and \ |
985c5abc8226
Corrected a few issues related to showing the coverage context menu items.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1474
diff
changeset
|
4472 | self.project.isPy3Project() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4473 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4474 | # now check ourself |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4475 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4476 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4477 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4478 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4479 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4480 | prEnable = prEnable or \ |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4481 | os.path.isfile("{0}.profile".format(basename)) or \ |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4482 | os.path.isfile("{0}.profile".format(tbasename)) |
1491
985c5abc8226
Corrected a few issues related to showing the coverage context menu items.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1474
diff
changeset
|
4483 | coEnable = (coEnable or \ |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4484 | os.path.isfile("{0}.coverage".format(basename)) or \ |
1491
985c5abc8226
Corrected a few issues related to showing the coverage context menu items.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1474
diff
changeset
|
4485 | os.path.isfile("{0}.coverage".format(tbasename))) and \ |
985c5abc8226
Corrected a few issues related to showing the coverage context menu items.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1474
diff
changeset
|
4486 | self.isPy3File() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4487 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4488 | # now check for syntax errors |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4489 | if self.hasSyntaxErrors(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4490 | coEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4491 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4492 | self.profileMenuAct.setEnabled(prEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4493 | self.coverageMenuAct.setEnabled(coEnable) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4494 | self.coverageShowAnnotationMenuAct.setEnabled( |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4495 | coEnable and not self.__coverageMarkersShown) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4496 | self.coverageHideAnnotationMenuAct.setEnabled( |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4497 | self.__coverageMarkersShown) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4498 | |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4499 | self.showMenu.emit("Show", self.menuShow, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4500 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4501 | def __showContextMenuGraphics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4502 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4503 | Private slot handling the aboutToShow signal of the diagrams context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4504 | """ |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4505 | if self.project.isOpen() and self.project.isProjectSource(self.fileName): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4506 | self.applicationDiagramMenuAct.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4507 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4508 | self.applicationDiagramMenuAct.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4509 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4510 | self.showMenu.emit("Graphics", self.graphicsMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4511 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4512 | def __showContextMenuMargin(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4513 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4514 | Private slot handling the aboutToShow signal of the margins context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4515 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4516 | if self.fileName and \ |
1762
307393ebe9c6
Some little optimisations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1758
diff
changeset
|
4517 | (self.isPy3File() or self.isPy2File() or self.isRubyFile()): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4518 | self.marginMenuActs["Breakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4519 | self.marginMenuActs["TempBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4520 | if self.markersAtLine(self.line) & self.breakpointMask: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4521 | self.marginMenuActs["EditBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4522 | self.marginMenuActs["EnableBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4523 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4524 | self.marginMenuActs["EditBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4525 | self.marginMenuActs["EnableBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4526 | if self.markersAtLine(self.line) & (1 << self.dbreakpoint): |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4527 | self.marginMenuActs["EnableBreakpoint"].setText( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4528 | self.trUtf8('Enable breakpoint')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4529 | else: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4530 | self.marginMenuActs["EnableBreakpoint"].setText( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4531 | self.trUtf8('Disable breakpoint')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4532 | if self.breaks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4533 | self.marginMenuActs["NextBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4534 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4535 | self.marginMenuActs["ClearBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4536 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4537 | self.marginMenuActs["NextBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4538 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4539 | self.marginMenuActs["ClearBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4540 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4541 | self.marginMenuActs["Breakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4542 | self.marginMenuActs["TempBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4543 | self.marginMenuActs["EditBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4544 | self.marginMenuActs["EnableBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4545 | self.marginMenuActs["NextBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4546 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4547 | self.marginMenuActs["ClearBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4548 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4549 | if self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4550 | self.marginMenuActs["NextBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4551 | self.marginMenuActs["PreviousBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4552 | self.marginMenuActs["ClearBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4553 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4554 | self.marginMenuActs["NextBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4555 | self.marginMenuActs["PreviousBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4556 | self.marginMenuActs["ClearBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4557 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4558 | if len(self.syntaxerrors): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4559 | self.marginMenuActs["GotoSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4560 | self.marginMenuActs["ClearSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4561 | if self.markersAtLine(self.line) & (1 << self.syntaxerror): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4562 | self.marginMenuActs["ShowSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4563 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4564 | self.marginMenuActs["ShowSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4565 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4566 | self.marginMenuActs["GotoSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4567 | self.marginMenuActs["ClearSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4568 | self.marginMenuActs["ShowSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4569 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4570 | if len(self.warnings): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4571 | self.marginMenuActs["NextWarningMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4572 | self.marginMenuActs["PreviousWarningMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4573 | self.marginMenuActs["ClearWarnings"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4574 | if self.markersAtLine(self.line) & (1 << self.warning): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4575 | self.marginMenuActs["ShowWarning"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4576 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4577 | self.marginMenuActs["ShowWarning"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4578 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4579 | self.marginMenuActs["NextWarningMarker"].setEnabled(False) |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4580 | self.marginMenuActs["PreviousWarningMarker"].setEnabled(False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4581 | self.marginMenuActs["ClearWarnings"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4582 | self.marginMenuActs["ShowWarning"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4583 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4584 | if self.notcoveredMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4585 | self.marginMenuActs["NextCoverageMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4586 | self.marginMenuActs["PreviousCoverageMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4587 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4588 | self.marginMenuActs["NextCoverageMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4589 | self.marginMenuActs["PreviousCoverageMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4590 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4591 | if self.__hasTaskMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4592 | self.marginMenuActs["PreviousTaskMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4593 | self.marginMenuActs["NextTaskMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4594 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4595 | self.marginMenuActs["PreviousTaskMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4596 | self.marginMenuActs["NextTaskMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4597 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4598 | if self.__hasChangeMarkers: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4599 | self.marginMenuActs["PreviousChangeMarker"].setEnabled(True) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4600 | self.marginMenuActs["NextChangeMarker"].setEnabled(True) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4601 | else: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4602 | self.marginMenuActs["PreviousChangeMarker"].setEnabled(False) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4603 | self.marginMenuActs["NextChangeMarker"].setEnabled(False) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4604 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4605 | self.showMenu.emit("Margin", self.sender(), self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4606 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4607 | def __showContextMenuChecks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4608 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4609 | Private slot handling the aboutToShow signal of the checks context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4610 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4611 | self.showMenu.emit("Checks", self.checksMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4612 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4613 | def __contextSave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4614 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4615 | Private slot handling the save context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4616 | """ |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
4617 | ok = self.saveFile() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4618 | if ok: |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
4619 | self.vm.setEditorName(self, self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4620 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4621 | def __contextSaveAs(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4622 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4623 | Private slot handling the save as context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4624 | """ |
559
ee695ebbd6e0
Fixed an issue introduced by the E5MessageBox job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
553
diff
changeset
|
4625 | ok = self.saveFileAs() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4626 | if ok: |
559
ee695ebbd6e0
Fixed an issue introduced by the E5MessageBox job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
553
diff
changeset
|
4627 | self.vm.setEditorName(self, self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4628 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4629 | def __contextClose(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4630 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4631 | Private slot handling the close context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4632 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4633 | self.vm.closeEditor(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4634 | |
1299
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4635 | def __contextOpenRejections(self): |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4636 | """ |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4637 | Private slot handling the open rejections file context menu entry. |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4638 | """ |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4639 | if self.fileName: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4640 | rej = "{0}.rej".format(self.fileName) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4641 | if os.path.exists(rej): |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4642 | self.vm.openSourceFile(rej) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
4643 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4644 | def __newView(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4645 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4646 | Private slot to create a new view to an open document. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4647 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4648 | self.vm.newEditorView(self.fileName, self, self.filetype) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4649 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4650 | def __newViewNewSplit(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4651 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4652 | Private slot to create a new view to an open document. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4653 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4654 | self.vm.addSplit() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4655 | self.vm.newEditorView(self.fileName, self, self.filetype) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4656 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4657 | def __selectAll(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4658 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4659 | Private slot handling the select all context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4660 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4661 | self.selectAll(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4662 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4663 | def __deselectAll(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4664 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4665 | Private slot handling the deselect all context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4666 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4667 | self.selectAll(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4668 | |
478
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4669 | def joinLines(self): |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4670 | """ |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4671 | Public slot to join the current line with the next one. |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4672 | """ |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4673 | curLine = self.getCursorPosition()[0] |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4674 | if curLine == self.lines() - 1: |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4675 | return |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4676 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4677 | line0Text = self.text(curLine) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4678 | line1Text = self.text(curLine + 1) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4679 | if line1Text in ["", "\r", "\n", "\r\n"]: |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4680 | return |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4681 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4682 | # determine start index |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4683 | startIndex = len(line0Text) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4684 | while startIndex > 0 and line0Text[startIndex - 1] in "\r\n\\ \t": |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4685 | startIndex -= 1 |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4686 | if startIndex == 0: |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4687 | return |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4688 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4689 | # determine end index |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4690 | endIndex = 0 |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4691 | while line1Text[endIndex] in " \t": |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4692 | endIndex += 1 |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4693 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4694 | self.setSelection(curLine, startIndex, curLine + 1, endIndex) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4695 | self.beginUndoAction() |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4696 | self.removeSelectedText() |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4697 | self.insertAt(" ", curLine, startIndex) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4698 | self.endUndoAction() |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4699 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4700 | def shortenEmptyLines(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4701 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4702 | Public slot to compress lines consisting solely of whitespace characters. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4703 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4704 | searchRE = r"^[ \t]+$" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4705 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4706 | ok = self.findFirstTarget(searchRE, True, False, False, 0, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4707 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4708 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4709 | self.replaceTarget("") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4710 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4711 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4712 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4713 | def __autosaveEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4714 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4715 | Private slot handling the autosave enable context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4716 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4717 | if self.menuActs["AutosaveEnable"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4718 | self.autosaveManuallyDisabled = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4719 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4720 | self.autosaveManuallyDisabled = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4721 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4722 | def shouldAutosave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4723 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4724 | Public slot to check the autosave flags. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4725 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4726 | @return flag indicating this editor should be saved (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4727 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4728 | return self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4729 | not self.autosaveManuallyDisabled and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4730 | not self.isReadOnly() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4731 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4732 | def __autoSyntaxCheck(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4733 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4734 | Private method to perform an automatic syntax check of the file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4735 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4736 | if Preferences.getEditor("AutoCheckSyntax"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4737 | self.clearSyntaxError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4738 | self.clearFlakesWarnings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4739 | if self.isPy3File(): |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4740 | syntaxError, _fn, errorline, errorindex, _code, _error = \ |
984
f4bddd7cf51e
Fixed an issue with automatic syntax check of an unsaved file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
971
diff
changeset
|
4741 | Utilities.compile(self.fileName or "(Unnamed)", self.text()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4742 | if syntaxError: |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4743 | self.toggleSyntaxError( |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4744 | int(errorline), int(errorindex), True, _error) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4745 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4746 | if Preferences.getFlakes("IncludeInSyntaxCheck"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4747 | ignoreStarImportWarnings = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4748 | Preferences.getFlakes("IgnoreStarImportWarnings") |
115
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4749 | try: |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4750 | txt = self.text()\ |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4751 | .replace("\r\n", "\n")\ |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4752 | .replace("\r", "\n") |
954
a096fdc38f71
Fixed a few issues with the various checkers related to checking an unsaved file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
4753 | warnings = Checker(txt, self.fileName or "(Unnamed)") |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4754 | warnings.messages.sort(key=lambda a: a.lineno) |
115
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4755 | for warning in warnings.messages: |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4756 | if ignoreStarImportWarnings and \ |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4757 | isinstance(warning, ImportStarUsed): |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4758 | continue |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4759 | |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4760 | _fn, lineno, message = warning.getMessageData() |
1308
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1299
diff
changeset
|
4761 | if "__IGNORE_WARNING__" not in Utilities.extractLineFlags( |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1299
diff
changeset
|
4762 | self.text(lineno - 1).strip()): |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4763 | self.toggleFlakesWarning( |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4764 | lineno, True, message) |
115
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4765 | except SyntaxError as err: |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4766 | if err.text.strip(): |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4767 | msg = err.text.strip() |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4768 | else: |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4769 | msg = err.msg |
13d58f643b43
Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
109
diff
changeset
|
4770 | self.toggleSyntaxError(err.lineno, True, msg) |
984
f4bddd7cf51e
Fixed an issue with automatic syntax check of an unsaved file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
971
diff
changeset
|
4771 | elif self.isPy2File() and self.fileName is not None: |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4772 | syntaxError, _fn, errorline, errorindex, _code, _error, \ |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4773 | warnings = Utilities.py2compile( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4774 | self.fileName, |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4775 | checkFlakes=Preferences.getFlakes("IncludeInSyntaxCheck")) |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
4776 | if syntaxError: |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4777 | self.toggleSyntaxError( |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4778 | int(errorline), int(errorindex), True, _error) |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
4779 | else: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
4780 | for warning in warnings: |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4781 | self.toggleFlakesWarning( |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
4782 | int(warning[1]), True, warning[2]) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4783 | |
1353
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4784 | def __initOnlineSyntaxCheck(self): |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4785 | """ |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4786 | Private slot to initialize the online syntax check. |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4787 | """ |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4788 | self.__onlineSyntaxCheckTimer = QTimer(self) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4789 | self.__onlineSyntaxCheckTimer.setSingleShot(True) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4790 | self.__onlineSyntaxCheckTimer.setInterval( |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4791 | Preferences.getEditor("OnlineSyntaxCheckInterval") * 1000) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4792 | self.__onlineSyntaxCheckTimer.timeout.connect(self.__autoSyntaxCheck) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4793 | self.textChanged.connect(self.__resetOnlineSyntaxCheckTimer) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4794 | |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4795 | def __resetOnlineSyntaxCheckTimer(self): |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4796 | """ |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4797 | Private method to reset the online syntax check timer. |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4798 | """ |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4799 | if Preferences.getEditor("OnlineSyntaxCheck"): |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4800 | self.__onlineSyntaxCheckTimer.stop() |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4801 | self.__onlineSyntaxCheckTimer.start() |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4802 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4803 | def __showCodeMetrics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4804 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4805 | Private method to handle the code metrics context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4806 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4807 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4808 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4809 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4810 | self.codemetrics = CodeMetricsDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4811 | self.codemetrics.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4812 | self.codemetrics.start(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4813 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4814 | def __getCodeCoverageFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4815 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4816 | Private method to get the filename of the file containing coverage info. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4817 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4818 | @return filename of the coverage file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4819 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4820 | files = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4821 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4822 | # first check if the file belongs to a project and there is |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4823 | # a project coverage file |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4824 | if self.project.isOpen() and self.project.isProjectSource(self.fileName): |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4825 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4826 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4827 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4828 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4829 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4830 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4831 | f = "{0}.coverage".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4832 | tf = "{0}.coverage".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4833 | if os.path.isfile(f): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4834 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4835 | if os.path.isfile(tf): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4836 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4837 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4838 | # now check, if there are coverage files belonging to ourself |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4839 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4840 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4841 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4842 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4843 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4844 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4845 | f = "{0}.coverage".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4846 | tf = "{0}.coverage".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4847 | if os.path.isfile(f) and not f in files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4848 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4849 | if os.path.isfile(tf) and not tf in files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4850 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4851 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4852 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4853 | if len(files) > 1: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4854 | fn, ok = QInputDialog.getItem( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4855 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4856 | self.trUtf8("Code Coverage"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4857 | self.trUtf8("Please select a coverage file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4858 | files, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4859 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4860 | if not ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4861 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4862 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4863 | fn = files[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4864 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4865 | fn = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4866 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4867 | return fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4868 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4869 | def __showCodeCoverage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4870 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4871 | Private method to handle the code coverage context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4872 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4873 | fn = self.__getCodeCoverageFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4874 | if fn: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4875 | self.codecoverage = PyCoverageDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4876 | self.codecoverage.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4877 | self.codecoverage.start(fn, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4878 | |
2163
2b02339f52bf
Enhanced the code coverage dialog functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2162
diff
changeset
|
4879 | def codeCoverageShowAnnotations(self): |
2b02339f52bf
Enhanced the code coverage dialog functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2162
diff
changeset
|
4880 | """ |
2b02339f52bf
Enhanced the code coverage dialog functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2162
diff
changeset
|
4881 | Public method to handle the show code coverage annotations context menu action. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4882 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4883 | fn = self.__getCodeCoverageFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4884 | if fn: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4885 | cover = coverage(data_file=fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4886 | cover.use_cache(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4887 | cover.load() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4888 | missing = cover.analysis2(self.fileName)[3] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4889 | if missing: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4890 | for line in missing: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4891 | handle = self.markerAdd(line - 1, self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4892 | self.notcoveredMarkers.append(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4893 | self.coverageMarkersShown.emit(True) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4894 | self.__coverageMarkersShown = True |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4895 | else: |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
4896 | E5MessageBox.information(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4897 | self.trUtf8("Show Code Coverage Annotations"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4898 | self.trUtf8("""All lines have been covered.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4899 | else: |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
4900 | E5MessageBox.warning(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4901 | self.trUtf8("Show Code Coverage Annotations"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4902 | self.trUtf8("""There is no coverage file available.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4903 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4904 | def __codeCoverageHideAnnotations(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4905 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4906 | Private method to handle the hide code coverage annotations context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4907 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4908 | for handle in self.notcoveredMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4909 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4910 | self.notcoveredMarkers = [] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4911 | self.coverageMarkersShown.emit(False) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4912 | self.__coverageMarkersShown = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4913 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4914 | def hasCoverageMarkers(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4915 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4916 | Public method to test, if there are coverage markers. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4917 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4918 | return len(self.notcoveredMarkers) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4919 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4920 | def nextUncovered(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4921 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4922 | Public slot to handle the 'Next uncovered' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4923 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4924 | line, index = self.getCursorPosition() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4925 | if line == self.lines() - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4926 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4927 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4928 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4929 | ucline = self.markerFindNext(line, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4930 | if ucline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4931 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4932 | ucline = self.markerFindNext(0, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4933 | if ucline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4934 | self.setCursorPosition(ucline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4935 | self.ensureLineVisible(ucline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4936 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4937 | def previousUncovered(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4938 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4939 | Public slot to handle the 'Previous uncovered' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4940 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4941 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4942 | if line == 0: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4943 | line = self.lines() - 1 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4944 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4945 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4946 | ucline = self.markerFindPrevious(line, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4947 | if ucline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4948 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4949 | ucline = self.markerFindPrevious(self.lines() - 1, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4950 | if ucline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4951 | self.setCursorPosition(ucline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4952 | self.ensureLineVisible(ucline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4953 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4954 | def __showProfileData(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4955 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4956 | Private method to handle the show profile data context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4957 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4958 | files = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4959 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4960 | # first check if the file belongs to a project and there is |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4961 | # a project profile file |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4962 | if self.project.isOpen() and self.project.isProjectSource(self.fileName): |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4963 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4964 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4965 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4966 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4967 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4968 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4969 | f = "{0}.profile".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4970 | tf = "{0}.profile".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4971 | if os.path.isfile(f): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4972 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4973 | if os.path.isfile(tf): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4974 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4975 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4976 | # now check, if there are profile files belonging to ourself |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4977 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4978 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4979 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4980 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4981 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4982 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4983 | f = "{0}.profile".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4984 | tf = "{0}.profile".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4985 | if os.path.isfile(f) and not f in files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4986 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4987 | if os.path.isfile(tf) and not tf in files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4988 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4989 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4990 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4991 | if len(files) > 1: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4992 | fn, ok = QInputDialog.getItem( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4993 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4994 | self.trUtf8("Profile Data"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4995 | self.trUtf8("Please select a profile file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4996 | files, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4997 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4998 | if not ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4999 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5000 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5001 | fn = files[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5002 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5003 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5004 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5005 | self.profiledata = PyProfileDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5006 | self.profiledata.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5007 | self.profiledata.start(fn, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5008 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5009 | def __lmBbookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5010 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5011 | Private method to handle the 'LMB toggles bookmark' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5012 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5013 | self.marginMenuActs["LMBbookmarks"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5014 | self.marginMenuActs["LMBbreakpoints"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5015 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5016 | def __lmBbreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5017 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5018 | Private method to handle the 'LMB toggles breakpoint' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5019 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5020 | self.marginMenuActs["LMBbookmarks"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5021 | self.marginMenuActs["LMBbreakpoints"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5022 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5023 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5024 | ## Syntax error handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5025 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5026 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5027 | def toggleSyntaxError(self, line, index, error, msg="", show=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5028 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5029 | Public method to toggle a syntax error indicator. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5030 | |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5031 | @param line line number of the syntax error (integer) |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5032 | @param index index number of the syntax error (integer) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5033 | @param error flag indicating if the error marker should be |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5034 | set or deleted (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5035 | @param msg error message (string) |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5036 | @keyparam show flag indicating to set the cursor to the error position |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5037 | (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5038 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5039 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5040 | line = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5041 | # hack to show a syntax error marker, if line is reported to be 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5042 | if error: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5043 | # set a new syntax error marker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5044 | markers = self.markersAtLine(line - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5045 | if not (markers & (1 << self.syntaxerror)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5046 | handle = self.markerAdd(line - 1, self.syntaxerror) |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5047 | index += self.indentation(line - 1) |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5048 | self.syntaxerrors[handle] = (msg, index) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5049 | self.syntaxerrorToggled.emit(self) |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5050 | if show: |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5051 | self.setCursorPosition(line - 1, index) |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5052 | self.ensureLineVisible(line - 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5053 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5054 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5055 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5056 | del self.syntaxerrors[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5057 | self.markerDeleteHandle(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5058 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5059 | |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5060 | self.__setAnnotation(line - 1) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5061 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5062 | def getSyntaxErrors(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5063 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5064 | Public method to retrieve the syntax error markers. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5065 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5066 | @return sorted list of all lines containing a syntax error |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5067 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5068 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5069 | selist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5070 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5071 | selist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5072 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5073 | selist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5074 | return selist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5075 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5076 | def hasSyntaxErrors(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5077 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5078 | Public method to check for the presence of syntax errors. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5079 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5080 | @return flag indicating the presence of syntax errors (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5081 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5082 | return len(self.syntaxerrors) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5083 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5084 | def gotoSyntaxError(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5085 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5086 | Public slot to handle the 'Goto syntax error' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5087 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5088 | seline = self.markerFindNext(0, 1 << self.syntaxerror) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5089 | if seline >= 0: |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5090 | index = 0 |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5091 | for handle in self.syntaxerrors.keys(): |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5092 | if self.markerLine(handle) == seline: |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5093 | index = self.syntaxerrors[handle][1] |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5094 | self.setCursorPosition(seline, index) |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5095 | self.ensureLineVisible(seline) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5096 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5097 | def clearSyntaxError(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5098 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5099 | Public slot to handle the 'Clear all syntax error' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5100 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5101 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5102 | line = self.markerLine(handle) + 1 |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5103 | self.toggleSyntaxError(line, 0, False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5104 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5105 | def __showSyntaxError(self, line=-1): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5106 | """ |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5107 | Private slot to handle the 'Show syntax error message' |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5108 | context menu action. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5109 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5110 | @param line line number to show the syntax error for (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5111 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5112 | if line == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5113 | line = self.line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5114 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5115 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5116 | if self.markerLine(handle) == line: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
5117 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5118 | self.trUtf8("Syntax Error"), |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5119 | self.syntaxerrors[handle][0]) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5120 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5121 | else: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
5122 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5123 | self.trUtf8("Syntax Error"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5124 | self.trUtf8("No syntax error message available.")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5125 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5126 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5127 | ## Flakes warning handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5128 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5129 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5130 | def toggleFlakesWarning(self, line, warning, msg=""): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5131 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5132 | Public method to toggle a flakes warning indicator. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5133 | |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
5134 | Note: This method is used to set PEP 8 warnings as well. |
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
5135 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5136 | @param line line number of the flakes warning |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
5137 | @param warning flag indicating if the warning marker should be |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5138 | set or deleted (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5139 | @param msg warning message (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5140 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5141 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5142 | line = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5143 | # hack to show a warning marker, if line is reported to be 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5144 | if warning: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5145 | # set/ammend a new warning marker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5146 | markers = self.markersAtLine(line - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5147 | if not (markers & (1 << self.warning)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5148 | handle = self.markerAdd(line - 1, self.warning) |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
5149 | self.warnings[handle] = [msg] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5150 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5151 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5152 | for handle in list(self.warnings.keys()): |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
5153 | if self.markerLine(handle) == line - 1 and \ |
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
5154 | msg not in self.warnings[handle]: |
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
5155 | self.warnings[handle].append(msg) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5156 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5157 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5158 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5159 | del self.warnings[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5160 | self.markerDeleteHandle(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5161 | self.syntaxerrorToggled.emit(self) |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5162 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5163 | self.__setAnnotation(line - 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5164 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5165 | def getFlakesWarnings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5166 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5167 | Public method to retrieve the flakes warning markers. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5168 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5169 | @return sorted list of all lines containing a flakes warning |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5170 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5171 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5172 | fwlist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5173 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5174 | fwlist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5175 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5176 | fwlist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5177 | return fwlist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5178 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5179 | def hasFlakesWarnings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5180 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5181 | Public method to check for the presence of flakes warnings. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5182 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5183 | @return flag indicating the presence of flakes warnings (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5184 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5185 | return len(self.warnings) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5186 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5187 | def nextFlakesWarning(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5188 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5189 | Public slot to handle the 'Next warning' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5190 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5191 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5192 | if line == self.lines() - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5193 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5194 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5195 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5196 | fwline = self.markerFindNext(line, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5197 | if fwline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5198 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5199 | fwline = self.markerFindNext(0, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5200 | if fwline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5201 | self.setCursorPosition(fwline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5202 | self.ensureLineVisible(fwline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5203 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5204 | def previousFlakesWarning(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5205 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5206 | Public slot to handle the 'Previous warning' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5207 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5208 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5209 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5210 | line = self.lines() - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5211 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5212 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5213 | fwline = self.markerFindPrevious(line, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5214 | if fwline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5215 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5216 | fwline = self.markerFindPrevious(self.lines() - 1, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5217 | if fwline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5218 | self.setCursorPosition(fwline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5219 | self.ensureLineVisible(fwline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5220 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5221 | def clearFlakesWarnings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5222 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5223 | Public slot to handle the 'Clear all warnings' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5224 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5225 | for handle in self.warnings: |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5226 | self.warnings[handle] = [] |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5227 | self.__setAnnotation(self.markerLine(handle)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5228 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5229 | self.warnings = {} |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5230 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5231 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5232 | def __showFlakesWarning(self, line=-1): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5233 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5234 | Private slot to handle the 'Show warning' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5235 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5236 | @param line line number to show the flakes warning for (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5237 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5238 | if line == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5239 | line = self.line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5240 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5241 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5242 | if self.markerLine(handle) == line: |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
5243 | E5MessageBox.warning(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5244 | self.trUtf8("py3flakes Warning"), |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
5245 | '\n'.join(self.warnings[handle])) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5246 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5247 | else: |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
5248 | E5MessageBox.warning(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5249 | self.trUtf8("py3flakes Warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5250 | self.trUtf8("No py3flakes warning message available.")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5251 | |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5252 | ############################################################################ |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5253 | ## Annotation handling methods below |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5254 | ############################################################################ |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5255 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5256 | def __setAnnotationStyles(self): |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5257 | """ |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5258 | Private slot to define the style used by inline annotations. |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5259 | """ |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5260 | if hasattr(QsciScintilla, "annotate"): |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5261 | self.annotationWarningStyle = QsciScintilla.STYLE_LASTPREDEFINED + 1 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5262 | self.SendScintilla(QsciScintilla.SCI_STYLESETFORE, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5263 | self.annotationWarningStyle, |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5264 | Preferences.getEditorColour("AnnotationsWarningForeground")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5265 | self.SendScintilla(QsciScintilla.SCI_STYLESETBACK, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5266 | self.annotationWarningStyle, |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5267 | Preferences.getEditorColour("AnnotationsWarningBackground")) |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5268 | |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5269 | self.annotationErrorStyle = self.annotationWarningStyle + 1 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5270 | self.SendScintilla(QsciScintilla.SCI_STYLESETFORE, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5271 | self.annotationErrorStyle, |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5272 | Preferences.getEditorColour("AnnotationsErrorForeground")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5273 | self.SendScintilla(QsciScintilla.SCI_STYLESETBACK, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5274 | self.annotationErrorStyle, |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5275 | Preferences.getEditorColour("AnnotationsErrorBackground")) |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5276 | |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5277 | def __setAnnotation(self, line): |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5278 | """ |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5279 | Private method to set the annotations for the given line. |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5280 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5281 | @param line number of the line that needs annotation (integer) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5282 | """ |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5283 | if hasattr(QsciScintilla, "annotate"): |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5284 | warningAnnotations = [] |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5285 | errorAnnotations = [] |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5286 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5287 | # step 1: do py3flakes warnings |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5288 | for handle in list(self.warnings.keys()): |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5289 | if self.markerLine(handle) == line: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5290 | for msg in self.warnings[handle]: |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5291 | warningAnnotations.append( |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5292 | self.trUtf8("Warning: {0}").format(msg)) |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5293 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5294 | # step 2: do syntax errors |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5295 | for handle in list(self.syntaxerrors.keys()): |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5296 | if self.markerLine(handle) == line: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5297 | errorAnnotations.append( |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5298 | self.trUtf8("Error: {0}").format( |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
5299 | self.syntaxerrors[handle][0])) |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5300 | |
730
772666a0a05d
Changed code of annotation support to make it easier to extend for more annotation types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
728
diff
changeset
|
5301 | wLen = len(warningAnnotations) |
772666a0a05d
Changed code of annotation support to make it easier to extend for more annotation types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
728
diff
changeset
|
5302 | eLen = len(errorAnnotations) |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5303 | annotations = [] |
730
772666a0a05d
Changed code of annotation support to make it easier to extend for more annotation types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
728
diff
changeset
|
5304 | |
772666a0a05d
Changed code of annotation support to make it easier to extend for more annotation types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
728
diff
changeset
|
5305 | if wLen: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5306 | annotationWarningTxt = "\n".join(warningAnnotations) |
730
772666a0a05d
Changed code of annotation support to make it easier to extend for more annotation types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
728
diff
changeset
|
5307 | if eLen: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5308 | annotationWarningTxt += "\n" |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5309 | annotations.append(QsciStyledText(annotationWarningTxt, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5310 | self.annotationWarningStyle)) |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5311 | |
730
772666a0a05d
Changed code of annotation support to make it easier to extend for more annotation types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
728
diff
changeset
|
5312 | if eLen: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5313 | annotationErrorTxt = "\n".join(errorAnnotations) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5314 | annotations.append(QsciStyledText(annotationErrorTxt, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5315 | self.annotationErrorStyle)) |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5316 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5317 | if annotations: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5318 | self.annotate(line, annotations) |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5319 | else: |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5320 | self.clearAnnotations(line) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
5321 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5322 | def __refreshAnnotations(self): |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5323 | """ |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5324 | Private method to refresh the annotations. |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5325 | """ |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5326 | if hasattr(QsciScintilla, "annotate"): |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5327 | self.clearAnnotations() |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5328 | for handle in list(self.warnings.keys()) + list(self.syntaxerrors.keys()): |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5329 | line = self.markerLine(handle) |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5330 | self.__setAnnotation(line) |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
5331 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5332 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5333 | ## Macro handling methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5334 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5335 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5336 | def __getMacroName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5337 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5338 | Private method to select a macro name from the list of macros. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5339 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5340 | @return Tuple of macro name and a flag, indicating, if the user pressed ok or |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5341 | canceled the operation. (string, boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5342 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5343 | qs = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5344 | for s in list(self.macros.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5345 | qs.append(s) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5346 | qs.sort() |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5347 | return QInputDialog.getItem( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5348 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5349 | self.trUtf8("Macro Name"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5350 | self.trUtf8("Select a macro name:"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5351 | qs, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5352 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5353 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5354 | def macroRun(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5355 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5356 | Public method to execute a macro. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5357 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5358 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5359 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5360 | self.macros[name].play() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5361 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5362 | def macroDelete(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5363 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5364 | Public method to delete a macro. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5365 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5366 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5367 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5368 | del self.macros[name] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5369 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5370 | def macroLoad(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5371 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5372 | Public method to load a macro from a file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5373 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5374 | configDir = Utilities.getConfigDir() |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5375 | fname = E5FileDialog.getOpenFileName( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5376 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5377 | self.trUtf8("Load macro file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5378 | configDir, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5379 | self.trUtf8("Macro files (*.macro)")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5380 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5381 | if not fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5382 | return # user aborted |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5383 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5384 | try: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5385 | f = open(fname, "r", encoding="utf-8") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5386 | lines = f.readlines() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5387 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5388 | except IOError: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
5389 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5390 | self.trUtf8("Error loading macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5391 | self.trUtf8("<p>The macro file <b>{0}</b> could not be read.</p>") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5392 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5393 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5394 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5395 | if len(lines) != 2: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
5396 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5397 | self.trUtf8("Error loading macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5398 | self.trUtf8("<p>The macro file <b>{0}</b> is corrupt.</p>") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5399 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5400 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5401 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5402 | macro = QsciMacro(lines[1], self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5403 | self.macros[lines[0].strip()] = macro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5404 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5405 | def macroSave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5406 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5407 | Public method to save a macro to a file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5408 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5409 | configDir = Utilities.getConfigDir() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5410 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5411 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5412 | if not ok or not name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5413 | return # user abort |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5414 | |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5415 | fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5416 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5417 | self.trUtf8("Save macro file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5418 | configDir, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5419 | self.trUtf8("Macro files (*.macro)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5420 | "", |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5421 | E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5422 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5423 | if not fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5424 | return # user aborted |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5425 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5426 | ext = QFileInfo(fname).suffix() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5427 | if not ext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5428 | ex = selectedFilter.split("(*")[1].split(")")[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5429 | if ex: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5430 | fname += ex |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5431 | if QFileInfo(fname).exists(): |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
5432 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5433 | self.trUtf8("Save macro"), |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
5434 | self.trUtf8("<p>The macro file <b>{0}</b> already exists." |
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
5435 | " Overwrite it?</p>").format(fname), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5436 | icon=E5MessageBox.Warning) |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
5437 | if not res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5438 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5439 | fname = Utilities.toNativeSeparators(fname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5440 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5441 | try: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5442 | f = open(fname, "w", encoding="utf-8") |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5443 | f.write("{0}{1}".format(name, "\n")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5444 | f.write(self.macros[name].save()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5445 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5446 | except IOError: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
5447 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5448 | self.trUtf8("Error saving macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5449 | self.trUtf8("<p>The macro file <b>{0}</b> could not be written.</p>") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5450 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5451 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5452 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5453 | def macroRecordingStart(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5454 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5455 | Public method to start macro recording. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5456 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5457 | if self.recording: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5458 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5459 | self.trUtf8("Start Macro Recording"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5460 | self.trUtf8("Macro recording is already active. Start new?"), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5461 | icon=E5MessageBox.Warning, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5462 | yesDefault=True) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5463 | if res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5464 | self.macroRecordingStop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5465 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5466 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5467 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5468 | self.recording = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5469 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5470 | self.curMacro = QsciMacro(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5471 | self.curMacro.startRecording() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5472 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5473 | def macroRecordingStop(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5474 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5475 | Public method to stop macro recording. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5476 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5477 | if not self.recording: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5478 | return # we are not recording |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5479 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5480 | self.curMacro.endRecording() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5481 | self.recording = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5482 | |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5483 | name, ok = QInputDialog.getText( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5484 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5485 | self.trUtf8("Macro Recording"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5486 | self.trUtf8("Enter name of the macro:"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5487 | QLineEdit.Normal) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5488 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5489 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5490 | self.macros[name] = self.curMacro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5491 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5492 | self.curMacro = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5493 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5494 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5495 | ## Overwritten methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5496 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5497 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5498 | def undo(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5499 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5500 | Public method to undo the last recorded change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5501 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5502 | super().undo() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5503 | self.undoAvailable.emit(self.isUndoAvailable()) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5504 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5505 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5506 | def redo(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5507 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5508 | Public method to redo the last recorded change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5509 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5510 | super().redo() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5511 | self.undoAvailable.emit(self.isUndoAvailable()) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5512 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5513 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5514 | def close(self, alsoDelete=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5515 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5516 | Public method called when the window gets closed. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5517 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5518 | This overwritten method redirects the action to our |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5519 | ViewManager.closeEditor, which in turn calls our closeIt |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5520 | method. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5521 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5522 | @param alsoDelete ignored |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5523 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5524 | return self.vm.closeEditor(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5525 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5526 | def closeIt(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5527 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5528 | Public method called by the viewmanager to finally get rid of us. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5529 | """ |
1930
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
5530 | if Preferences.getEditor("ClearBreaksOnClose") and not self.__clones: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5531 | self.__menuClearBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5532 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5533 | for clone in self.__clones[:]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5534 | self.removeClone(clone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5535 | clone.removeClone(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5536 | |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
5537 | self.breakpointModel.rowsAboutToBeRemoved.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5538 | self.__deleteBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
5539 | self.breakpointModel.dataAboutToBeChanged.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5540 | self.__breakPointDataAboutToBeChanged) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
5541 | self.breakpointModel.dataChanged.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5542 | self.__changeBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
5543 | self.breakpointModel.rowsInserted.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5544 | self.__addBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5545 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5546 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5547 | self.spell.stopIncrementalCheck() |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
5548 | |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
5549 | try: |
507
23652b3a0533
Fixed an issue with not connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
502
diff
changeset
|
5550 | self.project.projectPropertiesChanged.disconnect( |
23652b3a0533
Fixed an issue with not connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
502
diff
changeset
|
5551 | self.__projectPropertiesChanged) |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
5552 | except TypeError: |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
5553 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5554 | |
1406
e2f1634cceed
Fixed an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1373
diff
changeset
|
5555 | if self.fileName: |
e2f1634cceed
Fixed an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1373
diff
changeset
|
5556 | self.taskViewer.clearFileTasks(self.fileName, True) |
1373
b3b3c99dba01
Made tasks manager forget about global file tasks when file is closed (configurable via configuration dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1353
diff
changeset
|
5557 | |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5558 | super().close() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5559 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5560 | def keyPressEvent(self, ev): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5561 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5562 | Re-implemented to handle the user input a key at a time. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5563 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5564 | @param ev key event (QKeyEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5565 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5566 | txt = ev.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5567 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5568 | # See it is text to insert. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5569 | if len(txt) and txt >= " ": |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5570 | super().keyPressEvent(ev) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5571 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5572 | ev.ignore() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5573 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5574 | def focusInEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5575 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5576 | Protected method called when the editor receives focus. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5577 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5578 | This method checks for modifications of the current file and |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5579 | rereads it upon request. The cursor is placed at the current position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5580 | assuming, that it is in the vicinity of the old position after the reread. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5581 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5582 | @param event the event object (QFocusEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5583 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5584 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5585 | self.vm.editActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5586 | self.vm.editorActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5587 | self.vm.copyActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5588 | self.vm.viewActGrp.setEnabled(True) |
128
13e96bd0f5a5
Fixed an issue with handling the focus and (de-)activation of actions as it changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
115
diff
changeset
|
5589 | self.vm.searchActGrp.setEnabled(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5590 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5591 | self.setCaretWidth(self.caretWidth) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5592 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5593 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5594 | self.__updateReadOnly(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5595 | if self.vm.editorsCheckFocusInEnabled() and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5596 | not self.inReopenPrompt and self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5597 | QFileInfo(self.fileName).lastModified().toString() != \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5598 | self.lastModified.toString(): |
1831
2dd263d670ca
Fixed an issue in the editor that can lead to an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1819
diff
changeset
|
5599 | self.inReopenPrompt = True |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5600 | if Preferences.getEditor("AutoReopen") and not self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5601 | self.refresh() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5602 | else: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5603 | msg = self.trUtf8( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5604 | """<p>The file <b>{0}</b> has been changed while it was opened in""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5605 | """ eric5. Reread it?</p>""").format(self.fileName) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5606 | yesDefault = True |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5607 | if self.isModified(): |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5608 | msg += self.trUtf8( |
929 | 5609 | """<br><b>Warning:</b> You will lose""" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5610 | """ your changes upon reopening it.""") |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5611 | yesDefault = False |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5612 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5613 | self.trUtf8("File changed"), msg, |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5614 | icon=E5MessageBox.Warning, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5615 | yesDefault=yesDefault) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5616 | if res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5617 | self.refresh() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5618 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5619 | # do not prompt for this change again... |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5620 | self.lastModified = QFileInfo(self.fileName).lastModified() |
1831
2dd263d670ca
Fixed an issue in the editor that can lead to an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1819
diff
changeset
|
5621 | self.inReopenPrompt = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5622 | |
404
44a541bea034
Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
342
diff
changeset
|
5623 | self.setCursorFlashTime(QApplication.cursorFlashTime()) |
44a541bea034
Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
342
diff
changeset
|
5624 | |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5625 | super().focusInEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5626 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5627 | def focusOutEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5628 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5629 | Public method called when the editor loses focus. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5630 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5631 | @param event the event object (QFocusEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5632 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5633 | self.vm.editorActGrp.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5634 | self.setCaretWidth(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5635 | |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5636 | super().focusOutEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5637 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5638 | def changeEvent(self, evt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5639 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5640 | Protected method called to process an event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5641 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5642 | This implements special handling for the events showMaximized, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5643 | showMinimized and showNormal. The windows caption is shortened |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5644 | for the minimized mode and reset to the full filename for the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5645 | other modes. This is to make the editor windows work nicer |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5646 | with the QWorkspace. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5647 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5648 | @param evt the event, that was generated (QEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5649 | @return flag indicating if the event could be processed (bool) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5650 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5651 | if evt.type() == QEvent.WindowStateChange and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5652 | self.fileName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5653 | if self.windowState() == Qt.WindowStates(Qt.WindowMinimized): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5654 | cap = os.path.basename(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5655 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5656 | cap = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5657 | if self.isReadOnly(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5658 | cap = self.trUtf8("{0} (ro)").format(cap) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5659 | self.setWindowTitle(cap) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5660 | |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5661 | super().changeEvent(evt) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5662 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5663 | def mousePressEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5664 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5665 | Protected method to handle the mouse press event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5666 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5667 | @param event the mouse press event (QMouseEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5668 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5669 | self.vm.eventFilter(self, event) |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5670 | super().mousePressEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5671 | |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5672 | def wheelEvent(self, evt): |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5673 | """ |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5674 | Protected method to handle wheel events. |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5675 | |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5676 | @param evt reference to the wheel event (QWheelEvent) |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5677 | """ |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5678 | if evt.modifiers() & Qt.ControlModifier: |
1588
dccffd13be8d
Did some PEP-8 related corrections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1566
diff
changeset
|
5679 | if evt.delta() < 0: |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5680 | self.zoomOut() |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5681 | else: |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5682 | self.zoomIn() |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5683 | evt.accept() |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5684 | return |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5685 | |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5686 | if evt.modifiers() & Qt.ShiftModifier: |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5687 | if evt.delta() < 0: |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5688 | self.gotoMethodClass(False) |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5689 | else: |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5690 | self.gotoMethodClass(True) |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5691 | evt.accept() |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5692 | return |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5693 | |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5694 | super().wheelEvent(evt) |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
5695 | |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5696 | def event(self, evt): |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5697 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5698 | Protected method handling events. |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5699 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5700 | @param evt reference to the event (QEvent) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5701 | @return flag indicating, if the event was handled (boolean) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5702 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5703 | if evt.type() == QEvent.Gesture: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5704 | self.gestureEvent(evt) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5705 | return True |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5706 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5707 | return super().event(evt) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5708 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5709 | def gestureEvent(self, evt): |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5710 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5711 | Protected method handling gesture events. |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5712 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5713 | @param evt reference to the gesture event (QGestureEvent |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5714 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5715 | pinch = evt.gesture(Qt.PinchGesture) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5716 | if pinch: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5717 | if pinch.state() == Qt.GestureStarted: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5718 | zoom = (self.getZoom() + 10) / 10.0 |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5719 | pinch.setScaleFactor(zoom) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5720 | else: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5721 | zoom = int(pinch.scaleFactor() * 10) - 10 |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5722 | if zoom <= -9: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5723 | zoom = -9 |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5724 | pinch.setScaleFactor(0.1) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5725 | elif zoom >= 20: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5726 | zoom = 20 |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5727 | pinch.setScaleFactor(3.0) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5728 | self.zoomTo(zoom) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5729 | evt.accept() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
5730 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5731 | def __updateReadOnly(self, bForce=True): |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5732 | """ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5733 | Private method to update the readOnly information for this editor. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5734 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5735 | If bForce is True, then updates everything regardless if |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5736 | the attributes have actually changed, such as during |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5737 | initialization time. A signal is emitted after the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5738 | caption change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5739 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5740 | @param bForce True to force change, False to only update and emit |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5741 | signal if there was an attribute change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5742 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5743 | if self.fileName is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5744 | return |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5745 | readOnly = not QFileInfo(self.fileName).isWritable() or self.isReadOnly() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5746 | if not bForce and (readOnly == self.isReadOnly()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5747 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5748 | cap = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5749 | if readOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5750 | cap = self.trUtf8("{0} (ro)".format(cap)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5751 | self.setReadOnly(readOnly) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5752 | self.setWindowTitle(cap) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5753 | self.captionChanged.emit(cap, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5754 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5755 | def refresh(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5756 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5757 | Public slot to refresh the editor contents. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5758 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5759 | # save cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5760 | cline, cindex = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5761 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5762 | # save bookmarks and breakpoints and clear them |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5763 | bmlist = self.getBookmarks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5764 | self.clearBookmarks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5765 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5766 | # clear syntax error markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5767 | self.clearSyntaxError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5768 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5769 | # clear flakes warning markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5770 | self.clearFlakesWarnings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5771 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5772 | # clear breakpoint markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5773 | for handle in list(self.breaks.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5774 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5775 | self.breaks = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5776 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5777 | # reread the file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5778 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5779 | self.readFile(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5780 | except IOError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5781 | # do not prompt for this change again... |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5782 | self.lastModified = QDateTime.currentDateTime() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5783 | self.setModified(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5784 | |
2189
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
5785 | # re-initialize the online change tracer |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
5786 | self.__reinitOnlineChangeTrace() |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
5787 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5788 | # reset cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5789 | self.setCursorPosition(cline, cindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5790 | self.ensureCursorVisible() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5791 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5792 | # reset bookmarks and breakpoints to their old position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5793 | if bmlist: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5794 | for bm in bmlist: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5795 | self.toggleBookmark(bm) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5796 | self.__restoreBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5797 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5798 | self.editorSaved.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5799 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5800 | |
1807
9898a95461f1
Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1768
diff
changeset
|
5801 | self.refreshed.emit() |
9898a95461f1
Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1768
diff
changeset
|
5802 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5803 | def setMonospaced(self, on): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5804 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5805 | Public method to set/reset a monospaced font. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5806 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5807 | @param on flag to indicate usage of a monospace font (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5808 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5809 | if on: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5810 | f = Preferences.getEditorOtherFonts("MonospacedFont") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5811 | self.monospacedStyles(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5812 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5813 | if not self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5814 | self.clearStyles() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5815 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5816 | self.setFont(Preferences.getEditorOtherFonts("DefaultFont")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5817 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5818 | self.useMonospaced = on |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5819 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5820 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5821 | ## Drag and Drop Support |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5822 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5823 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5824 | def dragEnterEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5825 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5826 | Protected method to handle the drag enter event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5827 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5828 | @param event the drag enter event (QDragEnterEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5829 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5830 | self.inDragDrop = event.mimeData().hasUrls() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5831 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5832 | event.acceptProposedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5833 | else: |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5834 | super().dragEnterEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5835 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5836 | def dragMoveEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5837 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5838 | Protected method to handle the drag move event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5839 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5840 | @param event the drag move event (QDragMoveEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5841 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5842 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5843 | event.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5844 | else: |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5845 | super().dragMoveEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5846 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5847 | def dragLeaveEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5848 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5849 | Protected method to handle the drag leave event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5850 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5851 | @param event the drag leave event (QDragLeaveEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5852 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5853 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5854 | self.inDragDrop = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5855 | event.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5856 | else: |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5857 | super().dragLeaveEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5858 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5859 | def dropEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5860 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5861 | Protected method to handle the drop event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5862 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5863 | @param event the drop event (QDropEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5864 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5865 | if event.mimeData().hasUrls(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5866 | for url in event.mimeData().urls(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5867 | fname = url.toLocalFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5868 | if fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5869 | if not QFileInfo(fname).isDir(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5870 | self.vm.openSourceFile(fname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5871 | else: |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
5872 | E5MessageBox.information(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5873 | self.trUtf8("Drop Error"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5874 | self.trUtf8("""<p><b>{0}</b> is not a file.</p>""") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5875 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5876 | event.acceptProposedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5877 | else: |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
5878 | super().dropEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5879 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5880 | self.inDragDrop = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5881 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5882 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5883 | ## Support for Qt resources files |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5884 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5885 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5886 | def __initContextMenuResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5887 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5888 | Private method used to setup the Resources context sub menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5889 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5890 | menu = QMenu(self.trUtf8('Resources')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5891 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5892 | menu.addAction(self.trUtf8('Add file...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5893 | self.__addFileResource) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5894 | menu.addAction(self.trUtf8('Add files...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5895 | self.__addFileResources) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5896 | menu.addAction(self.trUtf8('Add aliased file...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5897 | self.__addFileAliasResource) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5898 | menu.addAction(self.trUtf8('Add localized resource...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5899 | self.__addLocalizedResource) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5900 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5901 | menu.addAction(self.trUtf8('Add resource frame'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5902 | self.__addResourceFrame) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5903 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
5904 | menu.aboutToShow.connect(self.__showContextMenuResources) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5905 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5906 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5907 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5908 | def __showContextMenuResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5909 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5910 | Private slot handling the aboutToShow signal of the resources context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5911 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5912 | self.showMenu.emit("Resources", self.resourcesMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5913 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5914 | def __addFileResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5915 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5916 | Private method to handle the Add file context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5917 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5918 | dirStr = os.path.dirname(self.fileName) |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5919 | file = E5FileDialog.getOpenFileName( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5920 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5921 | self.trUtf8("Add file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5922 | dirStr, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5923 | "") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5924 | if file: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5925 | relFile = QDir(dirStr).relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5926 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5927 | self.insert(" <file>{0}</file>\n".format(relFile)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5928 | self.setCursorPosition(line + 1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5929 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5930 | def __addFileResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5931 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5932 | Private method to handle the Add files context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5933 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5934 | dirStr = os.path.dirname(self.fileName) |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5935 | files = E5FileDialog.getOpenFileNames( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5936 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5937 | self.trUtf8("Add file resources"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5938 | dirStr, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5939 | "") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5940 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5941 | myDir = QDir(dirStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5942 | filesText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5943 | for file in files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5944 | relFile = myDir.relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5945 | filesText += " <file>{0}</file>\n".format(relFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5946 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5947 | self.insert(filesText) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5948 | self.setCursorPosition(line + len(files), index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5949 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5950 | def __addFileAliasResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5951 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5952 | Private method to handle the Add aliased file context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5953 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5954 | dirStr = os.path.dirname(self.fileName) |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5955 | file = E5FileDialog.getOpenFileName( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5956 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5957 | self.trUtf8("Add aliased file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5958 | dirStr, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
5959 | "") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5960 | if file: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5961 | relFile = QDir(dirStr).relativeFilePath(file) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5962 | alias, ok = QInputDialog.getText( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5963 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5964 | self.trUtf8("Add aliased file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5965 | self.trUtf8("Alias for file <b>{0}</b>:").format(relFile), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5966 | QLineEdit.Normal, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5967 | relFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5968 | if ok and alias: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5969 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5970 | self.insert(' <file alias="{1}">{0}</file>\n'\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5971 | .format(relFile, alias)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5972 | self.setCursorPosition(line + 1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5973 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5974 | def __addLocalizedResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5975 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5976 | Private method to handle the Add localized resource context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5977 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5978 | from Project.AddLanguageDialog import AddLanguageDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5979 | dlg = AddLanguageDialog(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5980 | if dlg.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5981 | lang = dlg.getSelectedLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5982 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5983 | self.insert('<qresource lang="{0}">\n</qresource>\n'.format(lang)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5984 | self.setCursorPosition(line + 2, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5985 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5986 | def __addResourceFrame(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5987 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5988 | Private method to handle the Add resource frame context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5989 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5990 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5991 | self.insert('<!DOCTYPE RCC>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5992 | '<RCC version="1.0">\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5993 | '<qresource>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5994 | '</qresource>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5995 | '</RCC>\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5996 | self.setCursorPosition(line + 5, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5997 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5998 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5999 | ## Support for diagrams below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6000 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6001 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6002 | def __showClassDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6003 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6004 | Private method to handle the Class Diagram context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6005 | """ |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6006 | from Graphics.UMLDialog import UMLDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6007 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6008 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6009 | |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6010 | self.classDiagram = UMLDialog(UMLDialog.ClassDiagram, self.project, self.fileName, |
2025
8bb085c59cd2
Changed the diagrams to show a better diagram title when printed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1978
diff
changeset
|
6011 | self, noAttrs=False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6012 | self.classDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6013 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6014 | def __showPackageDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6015 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6016 | Private method to handle the Package Diagram context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6017 | """ |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6018 | from Graphics.UMLDialog import UMLDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6019 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6020 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6021 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6022 | package = os.path.isdir(self.fileName) and self.fileName \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6023 | or os.path.dirname(self.fileName) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
6024 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6025 | self.trUtf8("Package Diagram"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6026 | self.trUtf8("""Include class attributes?"""), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6027 | yesDefault=True) |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6028 | self.packageDiagram = UMLDialog(UMLDialog.PackageDiagram, self.project, package, |
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6029 | self, noAttrs=not res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6030 | self.packageDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6031 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6032 | def __showImportsDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6033 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6034 | Private method to handle the Imports Diagram context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6035 | """ |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6036 | from Graphics.UMLDialog import UMLDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6037 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6038 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6039 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6040 | package = os.path.isdir(self.fileName) and self.fileName \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6041 | or os.path.dirname(self.fileName) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
6042 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6043 | self.trUtf8("Imports Diagram"), |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
6044 | self.trUtf8("""Include imports from external modules?""")) |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6045 | self.importsDiagram = UMLDialog(UMLDialog.ImportsDiagram, self.project, package, |
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6046 | self, showExternalImports=res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6047 | self.importsDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6048 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6049 | def __showApplicationDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6050 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6051 | Private method to handle the Imports Diagram context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6052 | """ |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6053 | from Graphics.UMLDialog import UMLDialog |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
6054 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6055 | self.trUtf8("Application Diagram"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6056 | self.trUtf8("""Include module names?"""), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6057 | yesDefault=True) |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6058 | self.applicationDiagram = UMLDialog(UMLDialog.ApplicationDiagram, self.project, |
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
6059 | self, noModules=not res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6060 | self.applicationDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6061 | |
2034
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6062 | def __loadDiagram(self): |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6063 | """ |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6064 | Private slot to load a diagram from file. |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6065 | """ |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6066 | from Graphics.UMLDialog import UMLDialog |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6067 | self.loadedDiagram = UMLDialog(UMLDialog.NoDiagram, self.project, parent=self) |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6068 | if self.loadedDiagram.load(): |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6069 | self.loadedDiagram.show(fromFile=True) |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6070 | else: |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6071 | self.loadedDiagram = None |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
6072 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6073 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6074 | ## Typing aids related methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6075 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6076 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6077 | def __toggleTypingAids(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6078 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6079 | Private slot to toggle the typing aids. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6080 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6081 | if self.menuActs["TypingAidsEnabled"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6082 | self.completer.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6083 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6084 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6085 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6086 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6087 | ## Autocompleting templates |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6088 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6089 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6090 | def editorCommand(self, cmd): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6091 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6092 | Public method to perform a simple editor command. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6093 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6094 | @param cmd the scintilla command to be performed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6095 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6096 | if cmd == QsciScintilla.SCI_TAB: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6097 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6098 | tmplName = self.getWordLeft(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6099 | if tmplName: |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6100 | if e5App().getObject("TemplateViewer").hasTemplate( |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6101 | tmplName, self.getLanguage()): |
1723
6e690a8f5971
Fixed an issue in the editor applying templates.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1588
diff
changeset
|
6102 | self.__applyTemplate(tmplName, self.getLanguage()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6103 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6104 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6105 | templateNames = \ |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6106 | e5App().getObject("TemplateViewer").getTemplateNames( |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6107 | tmplName, self.getLanguage()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6108 | if len(templateNames) == 1: |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6109 | self.__applyTemplate(templateNames[0], self.getLanguage()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6110 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6111 | elif len(templateNames) > 1: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6112 | self.showUserList(TemplateCompletionListID, |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
6113 | ["{0}?{1:d}".format(t, self.TemplateImageID) \ |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
6114 | for t in templateNames]) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6115 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6116 | |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
6117 | super().editorCommand(cmd) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6118 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6119 | def __completionListSelected(self, id, txt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6120 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6121 | Private slot to handle the selection from the completion list. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6122 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6123 | @param id the ID of the user list (should be 1) (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6124 | @param txt the selected text (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6125 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6126 | if id == TemplateCompletionListID: |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6127 | self.__applyTemplate(txt, self.getLanguage()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6128 | |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6129 | def __applyTemplate(self, templateName, language): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6130 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6131 | Private method to apply a template by name. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6132 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6133 | @param templateName name of the template to apply (string) |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6134 | @param language name of the language (group) to get the template |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6135 | from (string) |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6136 | """ |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6137 | if e5App().getObject("TemplateViewer").hasTemplate( |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6138 | templateName, self.getLanguage()): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6139 | self.extendSelectionWordLeft() |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6140 | e5App().getObject("TemplateViewer").applyNamedTemplate( |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
6141 | templateName, self.getLanguage()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6142 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6143 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6144 | ## Project related methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6145 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6146 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6147 | def __projectPropertiesChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6148 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6149 | Private slot to handle changes of the project properties. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6150 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6151 | if self.spell: |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
6152 | pwl, pel = self.project.getProjectDictionaries() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6153 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6154 | pwl=pwl, pel=pel) |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
6155 | |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
6156 | self.setEolModeByEolString(self.project.getEolString()) |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
6157 | self.convertEols(self.eolMode()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6158 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6159 | def addedToProject(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6160 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6161 | Public method to signal, that this editor has been added to a project. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6162 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6163 | if self.spell: |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
6164 | pwl, pel = self.project.getProjectDictionaries() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6165 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6166 | pwl=pwl, pel=pel) |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6167 | |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6168 | self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged) |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6169 | |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6170 | def projectOpened(self): |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6171 | """ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6172 | Public slot to handle the opening of a project. |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6173 | """ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6174 | if self.fileName and \ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6175 | self.project.isProjectSource(self.fileName): |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6176 | self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged) |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6177 | self.setSpellingForProject() |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6178 | |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6179 | def projectClosed(self): |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6180 | """ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6181 | Public slot to handle the closing of a project. |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6182 | """ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6183 | try: |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6184 | self.project.projectPropertiesChanged.disconnect( |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6185 | self.__projectPropertiesChanged) |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6186 | except TypeError: |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6187 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6188 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6189 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6190 | ## Spellchecking related methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6191 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6192 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6193 | def __setSpellingLanguage(self, language, pwl="", pel=""): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6194 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6195 | Private slot to set the spell checking language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6196 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6197 | @param language spell checking language to be set (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6198 | @keyparam pwl name of the personal/project word list (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6199 | @keyparam pel name of the personal/project exclude list (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6200 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6201 | if self.spell and self.spell.getLanguage() != language: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6202 | self.spell.setLanguage(language, pwl=pwl, pel=pel) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6203 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6204 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6205 | def __setSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6206 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6207 | Private method to initialize the spell checking functionality. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6208 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6209 | if Preferences.getEditor("SpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6210 | self.__spellCheckStringsOnly = Preferences.getEditor("SpellCheckStringsOnly") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6211 | if self.spell is None: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6212 | self.spell = SpellChecker(self, self.spellingIndicator, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6213 | checkRegion=self.isSpellCheckRegion) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6214 | self.setSpellingForProject() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6215 | self.spell.setMinimumWordSize( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6216 | Preferences.getEditor("SpellCheckingMinWordSize")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6217 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6218 | self.setAutoSpellChecking() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6219 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6220 | self.spell = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6221 | self.clearAllIndicators(self.spellingIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6222 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6223 | def setSpellingForProject(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6224 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6225 | Public method to set the spell checking options for files belonging |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6226 | to the current project. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6227 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6228 | if self.fileName and \ |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
6229 | self.project.isOpen() and \ |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
6230 | self.project.isProjectSource(self.fileName): |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
6231 | pwl, pel = self.project.getProjectDictionaries() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6232 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6233 | pwl=pwl, pel=pel) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6234 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6235 | def setAutoSpellChecking(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6236 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6237 | Public method to set the automatic spell checking. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6238 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6239 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
1768
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
6240 | try: |
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
6241 | self.SCN_CHARADDED.connect(self.__spellCharAdded, Qt.UniqueConnection) |
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
6242 | except TypeError: |
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
6243 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6244 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6245 | else: |
542
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
6246 | try: |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
6247 | self.SCN_CHARADDED.disconnect(self.__spellCharAdded) |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
6248 | except TypeError: |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
6249 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6250 | self.clearAllIndicators(self.spellingIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6251 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6252 | def isSpellCheckRegion(self, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6253 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6254 | Public method to check, if the given position is within a region, that should |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6255 | be spell checked. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6256 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6257 | @param pos position to be checked (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6258 | @return flag indicating pos is in a spell check region (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6259 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6260 | if self.__spellCheckStringsOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6261 | style = self.styleAt(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6262 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6263 | return self.lexer_.isCommentStyle(style) or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6264 | self.lexer_.isStringStyle(style) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6265 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6266 | |
1768
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
6267 | @pyqtSlot(int) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6268 | def __spellCharAdded(self, charNumber): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6269 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6270 | Public slot called to handle the user entering a character. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6271 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6272 | @param charNumber value of the character entered (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6273 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6274 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6275 | if not chr(charNumber).isalnum(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6276 | self.spell.checkWord(self.positionBefore(self.currentPosition()), True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6277 | elif self.hasIndicator(self.spellingIndicator, self.currentPosition()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6278 | self.spell.checkWord(self.currentPosition()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6279 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6280 | def checkSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6281 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6282 | Public slot to perform an interactive spell check of the document. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6283 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6284 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6285 | cline, cindex = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6286 | dlg = SpellCheckingDialog(self.spell, 0, self.length(), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6287 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6288 | self.setCursorPosition(cline, cindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6289 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6290 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6291 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6292 | def __checkSpellingSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6293 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6294 | Private slot to spell check the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6295 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6296 | sline, sindex, eline, eindex = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6297 | startPos = self.positionFromLineIndex(sline, sindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6298 | endPos = self.positionFromLineIndex(eline, eindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6299 | dlg = SpellCheckingDialog(self.spell, startPos, endPos, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6300 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6301 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6302 | def __checkSpellingWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6303 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6304 | Private slot to check the word below the spelling context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6305 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6306 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6307 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6308 | wordStartPos = self.positionFromLineIndex(line, wordStart) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6309 | wordEndPos = self.positionFromLineIndex(line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6310 | dlg = SpellCheckingDialog(self.spell, wordStartPos, wordEndPos, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6311 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6312 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6313 | def __showContextMenuSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6314 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6315 | Private slot to set up the spelling menu before it is shown. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6316 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6317 | self.spellingMenu.clear() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6318 | self.spellingSuggActs = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6319 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6320 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6321 | suggestions = self.spell.getSuggestions(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6322 | for suggestion in suggestions[:5]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6323 | self.spellingSuggActs.append(self.spellingMenu.addAction(suggestion)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6324 | if suggestions: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6325 | self.spellingMenu.addSeparator() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6326 | self.spellingMenu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6327 | self.trUtf8("Check spelling..."), self.__checkSpellingWord) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6328 | self.spellingMenu.addAction(self.trUtf8("Add to dictionary"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6329 | self.__addToSpellingDictionary) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6330 | self.spellingMenu.addAction(self.trUtf8("Ignore All"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6331 | self.__ignoreSpellingAlways) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6332 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6333 | self.showMenu.emit("Spelling", self.spellingMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6334 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6335 | def __contextMenuSpellingTriggered(self, action): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6336 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6337 | Private slot to handle the selection of a suggestion of the spelling context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6338 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6339 | @param action reference to the action that was selected (QAction) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6340 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6341 | if action in self.spellingSuggActs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6342 | replacement = action.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6343 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6344 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6345 | self.setSelection(line, wordStart, line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6346 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6347 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6348 | self.insert(replacement) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6349 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6350 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6351 | def __addToSpellingDictionary(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6352 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6353 | Private slot to add the word below the spelling context menu to the dictionary. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6354 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6355 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6356 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6357 | self.spell.add(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6358 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6359 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6360 | self.clearIndicator(self.spellingIndicator, line, wordStart, line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6361 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6362 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6363 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6364 | def __removeFromSpellingDictionary(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6365 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6366 | Private slot to remove the word below the context menu to the dictionary. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6367 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6368 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6369 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6370 | self.spell.remove(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6371 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6372 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6373 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6374 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6375 | def __ignoreSpellingAlways(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6376 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6377 | Private to always ignore the word below the spelling context menu. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6378 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6379 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6380 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6381 | self.spell.ignoreAlways(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6382 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6383 | self.spell.checkDocumentIncrementally() |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6384 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6385 | ####################################################################### |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6386 | ## Cooperation related methods |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6387 | ####################################################################### |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6388 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6389 | def getSharingStatus(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6390 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6391 | Public method to get some share status info. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6392 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6393 | @return tuple indicating, if the editor is sharable, the sharing status, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6394 | if it is inside a locally initiated shared edit session and |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6395 | if it is inside a remotely initiated shared edit session |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6396 | (boolean, boolean, boolean, boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6397 | """ |
162
28f235c426c4
Added functionality to cut/copy/... the chat and to interactively accept/reject connections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
158
diff
changeset
|
6398 | return self.fileName is not None and \ |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
6399 | self.project.isOpen() and \ |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
6400 | self.project.isProjectFile(self.fileName), \ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6401 | self.__isShared, self.__inSharedEdit, self.__inRemoteSharedEdit |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6402 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6403 | def shareConnected(self, connected): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6404 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6405 | Public slot to handle a change of the connected state. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6406 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6407 | @param connected flag indicating the connected state (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6408 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6409 | if not connected: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6410 | self.__inRemoteSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6411 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6412 | self.__updateReadOnly() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6413 | self.cancelSharedEdit(send=False) |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6414 | self.__isSyncing = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6415 | self.__receivedWhileSyncing = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6416 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6417 | def shareEditor(self, share): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6418 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6419 | Public slot to set the shared status of the editor. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6420 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6421 | @param share flag indicating the share status (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6422 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6423 | self.__isShared = share |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6424 | if not share: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6425 | self.shareConnected(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6426 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6427 | def startSharedEdit(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6428 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6429 | Public slot to start a shared edit session for the editor. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6430 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6431 | self.__inSharedEdit = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6432 | self.__savedText = self.text() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6433 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6434 | QCryptographicHash.hash( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6435 | Utilities.encode(self.__savedText, self.encoding)[0], |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6436 | QCryptographicHash.Sha1).toHex(), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6437 | encoding="utf-8") |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6438 | self.__send(Editor.StartEditToken, hash) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6439 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6440 | def sendSharedEdit(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6441 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6442 | Public slot to end a shared edit session for the editor and |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6443 | send the changes. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6444 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6445 | commands = self.__calculateChanges(self.__savedText, self.text()) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6446 | self.__send(Editor.EndEditToken, commands) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6447 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6448 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6449 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6450 | def cancelSharedEdit(self, send=True): |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6451 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6452 | Public slot to cancel a shared edit session for the editor. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6453 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6454 | @keyparam send flag indicating to send the CancelEdit command (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6455 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6456 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6457 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6458 | if send: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6459 | self.__send(Editor.CancelEditToken) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6460 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6461 | def __send(self, token, args=None): |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6462 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6463 | Private method to send an editor command to remote editors. |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6464 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6465 | @param token command token (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6466 | @param args arguments for the command (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6467 | """ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6468 | if self.vm.isConnected(): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6469 | msg = "" |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6470 | if token in (Editor.StartEditToken, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6471 | Editor.EndEditToken, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6472 | Editor.RequestSyncToken, |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6473 | Editor.SyncToken): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6474 | msg = "{0}{1}{2}".format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6475 | token, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6476 | Editor.Separator, |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6477 | args |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6478 | ) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6479 | elif token == Editor.CancelEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6480 | msg = "{0}{1}c".format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6481 | token, |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6482 | Editor.Separator |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6483 | ) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6484 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6485 | self.vm.send(self.fileName, msg) |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6486 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6487 | def receive(self, command): |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6488 | """ |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6489 | Public slot to handle received editor commands. |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6490 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6491 | @param command command string (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6492 | """ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6493 | if self.__isShared: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6494 | if self.__isSyncing and \ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6495 | not command.startswith(Editor.SyncToken + Editor.Separator): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6496 | self.__receivedWhileSyncing.append(command) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6497 | else: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6498 | self.__dispatchCommand(command) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6499 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6500 | def __dispatchCommand(self, command): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6501 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6502 | Private method to dispatch received commands. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6503 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6504 | @param command command to be processed (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6505 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6506 | token, argsString = command.split(Editor.Separator, 1) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6507 | if token == Editor.StartEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6508 | self.__processStartEditCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6509 | elif token == Editor.CancelEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6510 | self.shareConnected(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6511 | elif token == Editor.EndEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6512 | self.__processEndEditCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6513 | elif token == Editor.RequestSyncToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6514 | self.__processRequestSyncCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6515 | elif token == Editor.SyncToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6516 | self.__processSyncCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6517 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6518 | def __processStartEditCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6519 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6520 | Private slot to process a remote StartEdit command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6521 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6522 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6523 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6524 | if not self.__inSharedEdit and not self.__inRemoteSharedEdit: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6525 | self.__inRemoteSharedEdit = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6526 | self.setReadOnly(True) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6527 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6528 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6529 | QCryptographicHash.hash( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6530 | Utilities.encode(self.text(), self.encoding)[0], |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6531 | QCryptographicHash.Sha1).toHex(), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6532 | encoding="utf-8") |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6533 | if hash != argsString: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6534 | # text is different to the remote site, request to sync it |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6535 | self.__isSyncing = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6536 | self.__send(Editor.RequestSyncToken, argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6537 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6538 | def __calculateChanges(self, old, new): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6539 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6540 | Private method to determine change commands to convert old text into |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6541 | new text. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6542 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6543 | @param old old text (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6544 | @param new new text (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6545 | @return commands to change old into new (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6546 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6547 | oldL = old.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6548 | newL = new.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6549 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6550 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6551 | formatStr = "@@{0} {1} {2} {3}" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6552 | commands = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6553 | for token, i1, i2, j1, j2 in matcher.get_opcodes(): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6554 | if token == "insert": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6555 | commands.append(formatStr.format("i", j1, j2 - j1, -1)) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6556 | commands.extend(newL[j1:j2]) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6557 | elif token == "delete": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6558 | commands.append(formatStr.format("d", j1, i2 - i1, -1)) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6559 | elif token == "replace": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6560 | commands.append(formatStr.format("r", j1, i2 - i1, j2 - j1)) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6561 | commands.extend(newL[j1:j2]) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6562 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6563 | return "\n".join(commands) + "\n" |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6564 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6565 | def __processEndEditCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6566 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6567 | Private slot to process a remote EndEdit command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6568 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6569 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6570 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6571 | commands = argsString.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6572 | sep = self.getLineSeparator() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6573 | cur = self.getCursorPosition() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6574 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6575 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6576 | self.beginUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6577 | while commands: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6578 | commandLine = commands.pop(0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6579 | if not commandLine.startswith("@@"): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6580 | continue |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6581 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6582 | command, *args = commandLine.split() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6583 | pos, l1, l2 = [int(arg) for arg in args] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6584 | if command == "@@i": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6585 | txt = sep.join(commands[0:l1]) + sep |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6586 | self.insertAt(txt, pos, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6587 | del commands[0:l1] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6588 | elif command == "@@d": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6589 | self.setSelection(pos, 0, pos + l1, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6590 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6591 | elif command == "@@r": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6592 | self.setSelection(pos, 0, pos + l1, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6593 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6594 | txt = sep.join(commands[0:l2]) + sep |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6595 | self.insertAt(txt, pos, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6596 | del commands[0:l2] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6597 | self.endUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6598 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6599 | self.__inRemoteSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6600 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6601 | self.setCursorPosition(*cur) |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
6602 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6603 | def __processRequestSyncCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6604 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6605 | Private slot to process a remote RequestSync command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6606 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6607 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6608 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6609 | if self.__inSharedEdit: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6610 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6611 | QCryptographicHash.hash( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6612 | Utilities.encode(self.__savedText, self.encoding)[0], |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6613 | QCryptographicHash.Sha1).toHex(), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6614 | encoding="utf-8") |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6615 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6616 | if hash == argsString: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6617 | self.__send(Editor.SyncToken, self.__savedText) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6618 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6619 | def __processSyncCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6620 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6621 | Private slot to process a remote Sync command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6622 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6623 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6624 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6625 | if self.__isSyncing: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6626 | cur = self.getCursorPosition() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6627 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6628 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6629 | self.beginUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6630 | self.selectAll() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6631 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6632 | self.insertAt(argsString, 0, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6633 | self.endUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6634 | self.setReadOnly(True) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6635 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6636 | self.setCursorPosition(*cur) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6637 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6638 | while self.__receivedWhileSyncing: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6639 | command = self.__receivedWhileSyncing.pop(0) |
826
2e3e2055e715
Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
825
diff
changeset
|
6640 | self.__dispatchCommand(command) |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
6641 | |
718
979d6e242404
Fixed an issue in the editor saving files without extension on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
6642 | self.__isSyncing = False |