Fri, 03 Sep 2010 10:05:50 +0200
Continued replacing QMessageBox.
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3 | # Copyright (c) 2002 - 2010 Detlev Offenbach <detlev@die-offenbachs.de> |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
10 | import os |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
11 | import re |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
12 | import difflib |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
13 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
14 | from PyQt4.Qsci import QsciScintilla, QsciMacro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
15 | from PyQt4.QtCore import * |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
16 | from PyQt4.QtGui import * |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
17 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
18 | from E5Gui.E5Application import e5App |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
19 | from E5Gui import E5FileDialog, E5MessageBox |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
20 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
21 | from . import Exporters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
22 | from . import Lexers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
23 | from . import TypingCompleters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
24 | from .QsciScintillaCompat import QsciScintillaCompat, QSCINTILLA_VERSION |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
25 | from .SpellChecker import SpellChecker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
26 | from .SpellCheckingDialog import SpellCheckingDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
27 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
28 | from Debugger.EditBreakpointDialog import EditBreakpointDialog |
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 DebugClients.Python3.coverage import coverage |
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 DataViews.CodeMetricsDialog import CodeMetricsDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
33 | from DataViews.PyCoverageDialog import PyCoverageDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
34 | from DataViews.PyProfileDialog import PyProfileDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
35 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
36 | from .Printer import Printer |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
37 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
38 | import Preferences |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
39 | import Utilities |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
40 | from Utilities.py3flakes.checker import Checker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
41 | from Utilities.py3flakes.messages import ImportStarUsed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
42 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
43 | import UI.PixmapCache |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
44 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
45 | EditorAutoCompletionListID = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
46 | TemplateCompletionListID = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
47 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
48 | class Editor(QsciScintillaCompat): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
49 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
50 | 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
|
51 | |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
52 | @signal modificationStatusChanged(bool, QsciScintillaCompat) emitted when the |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
53 | 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
|
54 | @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
|
55 | @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
|
56 | @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
|
57 | was changed |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
58 | @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
|
59 | @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
|
60 | @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
|
61 | (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
|
62 | @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
|
63 | 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
|
64 | @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
|
65 | @signal bookmarkToggled(QsciScintillaCompat) emitted when a bookmark is toggled |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
66 | @signal syntaxerrorToggled(QsciScintillaCompat) emitted when a syntax error |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
67 | was discovered |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
68 | @signal autoCompletionAPIsAvailable(bool) emitted after the autocompletion |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
69 | function has been configured |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
70 | @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
|
71 | shown or cleared |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
72 | @signal taskMarkersUpdated(QsciScintillaCompat) emitted when the task markers |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
73 | were updated |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
74 | @signal showMenu(str, QMenu, QsciScintillaCompat) emitted when a menu is about |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
75 | 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
|
76 | 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
|
77 | @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
|
78 | 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
|
79 | @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
|
80 | 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
|
81 | @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
|
82 | encoding name is passed as a parameter. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
83 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
84 | modificationStatusChanged = pyqtSignal(bool, QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
85 | undoAvailable = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
86 | redoAvailable = pyqtSignal(bool) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
87 | 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
|
88 | editorAboutToBeSaved = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
89 | editorSaved = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
90 | editorRenamed = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
91 | 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
|
92 | breakpointToggled = pyqtSignal(QsciScintillaCompat) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
93 | bookmarkToggled = pyqtSignal(QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
94 | syntaxerrorToggled = pyqtSignal(QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
95 | autoCompletionAPIsAvailable = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
96 | coverageMarkersShown = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
97 | taskMarkersUpdated = pyqtSignal(QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
98 | 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
|
99 | languageChanged = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
100 | eolChanged = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
101 | encodingChanged = pyqtSignal(str) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
102 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
103 | # Autocompletion icon definitions |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
104 | ClassID = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
105 | ClassProtectedID = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
106 | ClassPrivateID = 3 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
107 | MethodID = 4 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
108 | MethodProtectedID = 5 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
109 | MethodPrivateID = 6 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
110 | AttributeID = 7 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
111 | AttributeProtectedID = 8 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
112 | AttributePrivateID = 9 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
113 | EnumID = 10 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
114 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
115 | FromDocumentID = 99 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
116 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
117 | TemplateImageID = 100 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
118 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
119 | # Cooperation related definitions |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
120 | Separator = "@@@" |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
121 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
122 | StartEditToken = "START_EDIT" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
123 | EndEditToken = "END_EDIT" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
124 | CancelEditToken = "CANCEL_EDIT" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
125 | RequestSyncToken = "REQUEST_SYNC" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
126 | SyncToken = "SYNC" |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
127 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
128 | def __init__(self, dbs, fn = None, vm = None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
129 | filetype = "", editor = None, tv = None): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
130 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
131 | Constructor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
132 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
133 | @param dbs reference to the debug server object |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
134 | @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
|
135 | a new (empty) editor is opened |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
136 | @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
|
137 | @param filetype type of the source file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
138 | @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
|
139 | @param tv reference to the task viewer object |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
140 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
141 | QsciScintillaCompat.__init__(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
142 | self.setAttribute(Qt.WA_DeleteOnClose) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
143 | self.setAttribute(Qt.WA_KeyCompression) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
144 | self.setUtf8(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
145 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
146 | self.pyExtensions = dbs.getExtensions('Python') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
147 | self.py3Extensions = dbs.getExtensions('Python3') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
148 | self.rbExtensions = dbs.getExtensions('Ruby') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
149 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
150 | self.dbs = dbs |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
151 | self.taskViewer = tv |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
152 | self.fileName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
153 | self.vm = vm |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
154 | self.filetype = filetype |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
155 | self.noName = "" |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
156 | self.project = e5App().getObject("Project") |
92
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 | # clear some variables |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
159 | self.lastHighlight = None # remember the last highlighted line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
160 | self.lastErrorMarker = None # remember the last error line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
161 | self.lastCurrMarker = None # remember the last current line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
162 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
163 | self.breaks = {} # key: marker handle, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
164 | # value: (lineno, condition, temporary, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
165 | # enabled, ignorecount) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
166 | 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
|
167 | # bookmark markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
168 | self.syntaxerrors = {} # key: marker handle |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
169 | # value: error message |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
170 | self.warnings = {} # key: marker handle |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
171 | # value: list of warning messages |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
172 | self.notcoveredMarkers = [] # just a list of marker handles |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
173 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
174 | self.condHistory = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
175 | self.lexer_ = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
176 | self.__lexerReset = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
177 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
178 | self.encoding = Preferences.getEditor("DefaultEncoding") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
179 | self.apiLanguage = '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
180 | self.lastModified = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
181 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
182 | self.inReopenPrompt = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
183 | # 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
|
184 | 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
|
185 | 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
|
186 | 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
|
187 | 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
|
188 | self.inDragDrop = False # true if we are in drop mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
189 | self.__hasTaskMarkers = False # no task markers present |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
190 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
191 | self.macros = {} # list of defined macros |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
192 | self.curMacro = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
193 | self.recording = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
194 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
195 | self.acAPI = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
196 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
197 | # list of clones |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
198 | self.__clones = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
199 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
200 | # clear QScintilla defined keyboard commands |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
201 | # 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
|
202 | self.clearAlternateKeys() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
203 | self.clearKeys() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
204 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
205 | # initialize the mark occurrences timer |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
206 | self.__markOccurrencesTimer = QTimer(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
207 | self.__markOccurrencesTimer.setSingleShot(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
208 | self.__markOccurrencesTimer.setInterval( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
209 | Preferences.getEditor("MarkOccurrencesTimeout")) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
210 | self.__markOccurrencesTimer.timeout.connect(self.__markOccurrences) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
211 | self.__markedText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
212 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
213 | # initialize some spellchecking stuff |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
214 | self.spell = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
215 | self.lastLine = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
216 | self.lastIndex = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
217 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
218 | # initialize some cooperation stuff |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
219 | self.__isSyncing = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
220 | self.__receivedWhileSyncing = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
221 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
222 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
223 | self.__isShared = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
224 | self.__inRemoteSharedEdit = False |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
225 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
226 | 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
|
227 | 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
|
228 | 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
|
229 | self.userListActivated.connect(self.__completionListSelected) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
230 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
231 | # margins layout |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
232 | if QSCINTILLA_VERSION() >= 0x020301: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
233 | self.__unifiedMargins = Preferences.getEditor("UnifiedMargins") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
234 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
235 | self.__unifiedMargins = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
236 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
237 | # define the margins markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
238 | self.breakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
239 | self.markerDefine(UI.PixmapCache.getPixmap("break.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
240 | self.cbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
241 | self.markerDefine(UI.PixmapCache.getPixmap("cBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
242 | self.tbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
243 | self.markerDefine(UI.PixmapCache.getPixmap("tBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
244 | self.tcbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
245 | self.markerDefine(UI.PixmapCache.getPixmap("tCBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
246 | self.dbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
247 | self.markerDefine(UI.PixmapCache.getPixmap("breakDisabled.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
248 | self.bookmark = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
249 | self.markerDefine(UI.PixmapCache.getPixmap("bookmark.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
250 | self.syntaxerror = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
251 | self.markerDefine(UI.PixmapCache.getPixmap("syntaxError.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
252 | self.notcovered = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
253 | self.markerDefine(UI.PixmapCache.getPixmap("notcovered.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
254 | self.taskmarker = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
255 | self.markerDefine(UI.PixmapCache.getPixmap("task.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
256 | self.warning = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
257 | self.markerDefine(UI.PixmapCache.getPixmap("warning.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
258 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
259 | # define the line markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
260 | self.currentline = self.markerDefine(QsciScintilla.Background) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
261 | self.errorline = self.markerDefine(QsciScintilla.Background) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
262 | self.__setLineMarkerColours() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
263 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
264 | self.breakpointMask = (1 << self.breakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
265 | (1 << self.cbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
266 | (1 << self.tbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
267 | (1 << self.tcbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
268 | (1 << self.dbreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
269 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
270 | # configure the margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
271 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
272 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
273 | self.marginClicked.connect(self.__marginClicked) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
274 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
275 | # set the eol mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
276 | self.__setEolMode() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
277 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
278 | self.isResourcesFile = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
279 | if editor is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
280 | if self.fileName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
281 | if (QFileInfo(self.fileName).size() // 1024) > \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
282 | Preferences.getEditor("WarnFilesize"): |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
283 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
284 | self.trUtf8("Open File"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
285 | 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
|
286 | """ is <b>{1} KB</b>.""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
287 | """ Do you really want to load it?</p>""")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
288 | .format(self.fileName, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
289 | QFileInfo(self.fileName).size() // 1024), |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
290 | type_ = E5MessageBox.Warning) |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
291 | if not res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
292 | raise IOError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
293 | self.readFile(self.fileName, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
294 | bindName = self.__bindName(self.text(0)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
295 | self.__bindLexer(bindName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
296 | self.__bindCompleter(bindName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
297 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
298 | self.isResourcesFile = self.fileName.endswith(".qrc") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
299 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
300 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
301 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
302 | # clone the given editor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
303 | self.setDocument(editor.document()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
304 | self.breaks = editor.breaks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
305 | self.bookmarks = editor.bookmarks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
306 | self.syntaxerrors = editor.syntaxerrors |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
307 | self.notcoveredMarkers = editor.notcoveredMarkers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
308 | self.isResourcesFile = editor.isResourcesFile |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
309 | self.lastModified = editor.lastModified |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
310 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
311 | self.addClone(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
312 | editor.addClone(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
313 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
314 | self.gotoLine(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
315 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
316 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
317 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
318 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
319 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
320 | self.__acHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
321 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
322 | self.__ctHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
323 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
324 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
325 | sh = self.sizeHint() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
326 | if sh.height() < 300: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
327 | sh.setHeight(300) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
328 | self.resize(sh) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
329 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
330 | # Make sure tabbing through a QWorkspace works. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
331 | self.setFocusPolicy(Qt.StrongFocus) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
332 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
333 | self.__updateReadOnly(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
334 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
335 | self.setWhatsThis(self.trUtf8( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
336 | """<b>A Source Editor Window</b>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
337 | """<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
|
338 | """ 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
|
339 | """ is displayed in the window's titlebar.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
340 | """<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
|
341 | """ 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
|
342 | """ of the margins they may be edited.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
343 | """<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
|
344 | """ the line numbers and the fold markers.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
345 | """<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
|
346 | """<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
|
347 | """ about this error.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
348 | )) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
349 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
350 | # 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
|
351 | if self.vm is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
352 | req = self.size() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
353 | bnd = req.boundedTo(self.vm.size()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
354 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
355 | 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
|
356 | self.resize(bnd) |
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 | # set the autosave flag |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
359 | self.autosaveEnabled = Preferences.getEditor("AutosaveInterval") > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
360 | self.autosaveManuallyDisabled = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
361 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
362 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
363 | self.__initContextMenuMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
364 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
365 | self.__checkEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
366 | if editor is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
367 | self.__checkLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
368 | self.__checkEncoding() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
369 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
370 | # it's a clone |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
371 | self.__languageChanged(editor.apiLanguage, propagate = False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
372 | self.__encodingChanged(editor.encoding, propagate = False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
373 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
374 | 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
|
375 | # code coverage markers |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
376 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
377 | self.setAcceptDrops(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
378 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
379 | # breakpoint handling |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
380 | self.breakpointModel = self.dbs.getBreakPointModel() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
381 | self.__restoreBreakpoints() |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
382 | self.breakpointModel.rowsAboutToBeRemoved.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
383 | self.__deleteBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
384 | self.breakpointModel.dataAboutToBeChanged.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
385 | self.__breakPointDataAboutToBeChanged) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
386 | self.breakpointModel.dataChanged.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
387 | self.__changeBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
388 | self.breakpointModel.rowsInserted.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
389 | self.__addBreakPoints) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
390 | self.linesChanged.connect(self.__linesChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
391 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
392 | # establish connection to some ViewManager action groups |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
393 | self.addActions(self.vm.editorActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
394 | self.addActions(self.vm.editActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
395 | self.addActions(self.vm.copyActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
396 | self.addActions(self.vm.viewActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
397 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
398 | # register images to be shown in autocompletion lists |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
399 | self.__registerImages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
400 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
401 | def __registerImages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
402 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
403 | Private method to register images for autocompletion lists. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
404 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
405 | self.registerImage(self.ClassID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
406 | UI.PixmapCache.getPixmap("class.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
407 | self.registerImage(self.ClassProtectedID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
408 | UI.PixmapCache.getPixmap("class_protected.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
409 | self.registerImage(self.ClassPrivateID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
410 | UI.PixmapCache.getPixmap("class_private.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
411 | self.registerImage(self.MethodID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
412 | UI.PixmapCache.getPixmap("method.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
413 | self.registerImage(self.MethodProtectedID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
414 | UI.PixmapCache.getPixmap("method_protected.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
415 | self.registerImage(self.MethodPrivateID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
416 | UI.PixmapCache.getPixmap("method_private.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
417 | self.registerImage(self.AttributeID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
418 | UI.PixmapCache.getPixmap("attribute.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
419 | self.registerImage(self.AttributeProtectedID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
420 | UI.PixmapCache.getPixmap("attribute_protected.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
421 | self.registerImage(self.AttributePrivateID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
422 | UI.PixmapCache.getPixmap("attribute_private.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
423 | self.registerImage(self.EnumID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
424 | UI.PixmapCache.getPixmap("enum.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
425 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
426 | self.registerImage(self.FromDocumentID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
427 | UI.PixmapCache.getPixmap("editor.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
428 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
429 | self.registerImage(self.TemplateImageID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
430 | UI.PixmapCache.getPixmap("templateViewer.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
431 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
432 | def addClone(self, editor): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
433 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
434 | 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
|
435 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
436 | @param clone reference to the cloned editor (Editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
437 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
438 | self.__clones.append(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
439 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
440 | 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
|
441 | 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
|
442 | 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
|
443 | editor.encodingChanged.connect(self.__encodingChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
444 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
445 | def removeClone(self, editor): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
446 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
447 | 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
|
448 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
449 | @param clone reference to the cloned editor (Editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
450 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
451 | 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
|
452 | 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
|
453 | 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
|
454 | 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
|
455 | editor.encodingChanged.disconnect(self.__encodingChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
456 | self.__clones.remove(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
457 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
458 | def __bindName(self, line0): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
459 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
460 | 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
|
461 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
462 | @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
|
463 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
464 | bindName = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
465 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
466 | if line0.startswith("<?xml"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
467 | # override extension for XML files |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
468 | bindName = "dummy.xml" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
469 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
470 | # check filetype |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
471 | if self.filetype == "Python": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
472 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
473 | elif self.filetype == "Ruby": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
474 | bindName = "dummy.rb" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
475 | elif self.filetype == "D": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
476 | bindName = "dummy.d" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
477 | elif self.filetype == "Properties": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
478 | bindName = "dummy.ini" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
479 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
480 | # #! marker detection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
481 | if line0.startswith("#!"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
482 | if "python3" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
483 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
484 | self.filetype = "Python3" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
485 | elif "python2" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
486 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
487 | self.filetype = "Python" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
488 | elif "python" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
489 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
490 | self.filetype = "Python" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
491 | elif ("/bash" in line0 or "/sh" in line0): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
492 | bindName = "dummy.sh" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
493 | elif "ruby" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
494 | bindName = "dummy.rb" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
495 | self.filetype = "Ruby" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
496 | elif "perl" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
497 | bindName = "dummy.pl" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
498 | elif "lua" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
499 | bindName = "dummy.lua" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
500 | elif "dmd" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
501 | bindName = "dummy.d" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
502 | self.filetype = "D" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
503 | return bindName |
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 | def getMenu(self, menuName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
506 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
507 | 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
|
508 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
509 | @param menuName name of the menu (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
510 | @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
|
511 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
512 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
513 | return self.__menus[menuName] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
514 | except KeyError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
515 | return None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
516 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
517 | def hasMiniMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
518 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
519 | Public method to check the miniMenu flag. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
520 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
521 | @return flag indicating a minimized context menu (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
522 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
523 | return self.miniMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
524 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
525 | def __initContextMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
526 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
527 | Private method used to setup the context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
528 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
529 | self.miniMenu = Preferences.getEditor("MiniContextMenu") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
530 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
531 | self.menuActs = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
532 | self.menu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
533 | self.__menus = { |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
534 | "Main" : self.menu, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
535 | } |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
536 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
537 | self.languagesMenu = self.__initContextMenuLanguages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
538 | self.__menus["Languages"] = self.languagesMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
539 | if self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
540 | self.resourcesMenu = self.__initContextMenuResources() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
541 | self.__menus["Resources"] = self.resourcesMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
542 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
543 | 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
|
544 | self.menuShow = self.__initContextMenuShow() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
545 | self.graphicsMenu = self.__initContextMenuGraphics() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
546 | self.autocompletionMenu = self.__initContextMenuAutocompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
547 | 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
|
548 | self.__menus["Show"] = self.menuShow |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
549 | self.__menus["Graphics"] = self.graphicsMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
550 | self.__menus["Autocompletion"] = self.autocompletionMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
551 | self.exportersMenu = self.__initContextMenuExporters() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
552 | self.__menus["Exporters"] = self.exportersMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
553 | self.eolMenu = self.__initContextMenuEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
554 | self.__menus["Eol"] = self.eolMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
555 | self.encodingsMenu = self.__initContextMenuEncodings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
556 | self.__menus["Encodings"] = self.encodingsMenu |
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 | self.menuActs["Undo"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
559 | self.menu.addAction(UI.PixmapCache.getIcon("editUndo.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
560 | self.trUtf8('Undo'), self.undo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
561 | self.menuActs["Redo"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
562 | self.menu.addAction(UI.PixmapCache.getIcon("editRedo.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
563 | self.trUtf8('Redo'), self.redo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
564 | self.menuActs["Revert"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
565 | 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
|
566 | self.revertToUnmodified) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
567 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
568 | self.menuActs["Cut"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
569 | self.menu.addAction(UI.PixmapCache.getIcon("editCut.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
570 | self.trUtf8('Cut'), self.cut) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
571 | self.menuActs["Copy"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
572 | self.menu.addAction(UI.PixmapCache.getIcon("editCopy.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
573 | self.trUtf8('Copy'), self.copy) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
574 | self.menu.addAction(UI.PixmapCache.getIcon("editPaste.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
575 | self.trUtf8('Paste'), self.paste) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
576 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
577 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
578 | self.menu.addAction(UI.PixmapCache.getIcon("editIndent.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
579 | self.trUtf8('Indent'), self.indentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
580 | self.menu.addAction(UI.PixmapCache.getIcon("editUnindent.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
581 | self.trUtf8('Unindent'), self.unindentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
582 | self.menuActs["Comment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
583 | self.menu.addAction(UI.PixmapCache.getIcon("editComment.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
584 | self.trUtf8('Comment'), self.commentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
585 | self.menuActs["Uncomment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
586 | self.menu.addAction(UI.PixmapCache.getIcon("editUncomment.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
587 | self.trUtf8('Uncomment'), self.uncommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
588 | self.menuActs["StreamComment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
589 | self.menu.addAction(self.trUtf8('Stream Comment'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
590 | self.streamCommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
591 | self.menuActs["BoxComment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
592 | self.menu.addAction(self.trUtf8('Box Comment'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
593 | self.boxCommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
594 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
595 | self.menu.addAction(self.trUtf8('Select to brace'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
596 | self.selectToMatchingBrace) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
597 | 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
|
598 | 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
|
599 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
600 | self.menuActs["SpellCheck"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
601 | self.menu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
602 | self.trUtf8('Check spelling...'), self.checkSpelling) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
603 | self.menuActs["SpellCheckSelection"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
604 | self.menu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
605 | self.trUtf8('Check spelling of selection...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
606 | self.__checkSpellingSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
607 | self.menuActs["SpellCheckRemove"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
608 | self.menu.addAction(self.trUtf8("Remove from dictionary"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
609 | self.__removeFromSpellingDictionary) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
610 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
611 | self.menu.addAction(self.trUtf8('Shorten empty lines'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
612 | self.shortenEmptyLines) |
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["Languages"] = self.menu.addMenu(self.languagesMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
615 | self.menuActs["Encodings"] = self.menu.addMenu(self.encodingsMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
616 | self.menuActs["Eol"] = self.menu.addMenu(self.eolMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
617 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
618 | self.menuActs["MonospacedFont"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
619 | self.menu.addAction(self.trUtf8("Use Monospaced Font"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
620 | self.handleMonospacedEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
621 | self.menuActs["MonospacedFont"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
622 | self.menuActs["MonospacedFont"].setChecked(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
623 | self.menuActs["AutosaveEnable"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
624 | self.menu.addAction(self.trUtf8("Autosave enabled"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
625 | self.__autosaveEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
626 | self.menuActs["AutosaveEnable"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
627 | self.menuActs["AutosaveEnable"].setChecked(self.autosaveEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
628 | self.menuActs["TypingAidsEnabled"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
629 | self.menu.addAction(self.trUtf8("Typing aids enabled"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
630 | self.__toggleTypingAids) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
631 | self.menuActs["TypingAidsEnabled"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
632 | self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
633 | self.menuActs["TypingAidsEnabled"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
634 | 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
|
635 | self.menuActs["AutoCompletionEnable"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
636 | self.menu.addAction(self.trUtf8("Autocompletion enabled"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
637 | self.__toggleAutoCompletionEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
638 | self.menuActs["AutoCompletionEnable"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
639 | self.menuActs["AutoCompletionEnable"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
640 | self.autoCompletionThreshold() != -1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
641 | if not self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
642 | self.menu.addMenu(self.autocompletionMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
643 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
644 | if self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
645 | self.menu.addMenu(self.resourcesMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
646 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
647 | self.menuActs["Check"] = self.menu.addMenu(self.checksMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
648 | self.menu.addSeparator() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
649 | 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
|
650 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
651 | self.menuActs["Diagrams"] = self.menu.addMenu(self.graphicsMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
652 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
653 | self.menu.addAction(self.trUtf8('New view'), self.__newView) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
654 | act = self.menu.addAction(self.trUtf8('New view (with new split)'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
655 | self.__newViewNewSplit) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
656 | if not self.vm.canSplit(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
657 | act.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
658 | self.menu.addAction(UI.PixmapCache.getIcon("close.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
659 | self.trUtf8('Close'), self.__contextClose) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
660 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
661 | self.menuActs["Save"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
662 | self.menu.addAction(UI.PixmapCache.getIcon("fileSave.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
663 | self.trUtf8('Save'), self.__contextSave) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
664 | self.menu.addAction(UI.PixmapCache.getIcon("fileSaveAs.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
665 | self.trUtf8('Save As...'), self.__contextSaveAs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
666 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
667 | self.menu.addMenu(self.exportersMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
668 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
669 | self.menu.addAction(UI.PixmapCache.getIcon("printPreview.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
670 | self.trUtf8("Print Preview"), self.printPreviewFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
671 | self.menu.addAction(UI.PixmapCache.getIcon("print.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
672 | self.trUtf8('Print'), self.printFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
673 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
674 | self.menu.aboutToShow.connect(self.__showContextMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
675 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
676 | self.spellingMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
677 | self.__menus["Spelling"] = self.spellingMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
678 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
679 | 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
|
680 | self.spellingMenu.triggered.connect(self.__contextMenuSpellingTriggered) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
681 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
682 | def __initContextMenuAutocompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
683 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
684 | 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
|
685 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
686 | menu = QMenu(self.trUtf8('Autocomplete')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
687 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
688 | self.menuActs["acDynamic"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
689 | menu.addAction(self.trUtf8('dynamic'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
690 | self.autoComplete) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
691 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
692 | menu.addAction(self.trUtf8('from Document'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
693 | self.autoCompleteFromDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
694 | self.menuActs["acAPI"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
695 | menu.addAction(self.trUtf8('from APIs'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
696 | self.autoCompleteFromAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
697 | self.menuActs["acAPIDocument"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
698 | menu.addAction(self.trUtf8('from Document and APIs'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
699 | self.autoCompleteFromAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
700 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
701 | self.menuActs["calltip"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
702 | menu.addAction(self.trUtf8('Calltip'), self.callTip) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
703 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
704 | menu.aboutToShow.connect(self.__showContextMenuAutocompletion) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
705 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
706 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
707 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
708 | def __initContextMenuChecks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
709 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
710 | 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
|
711 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
712 | 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
|
713 | menu.aboutToShow.connect(self.__showContextMenuChecks) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
714 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
715 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
716 | def __initContextMenuShow(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
717 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
718 | 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
|
719 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
720 | menu = QMenu(self.trUtf8('Show')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
721 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
722 | menu.addAction(self.trUtf8('Code metrics...'), self.__showCodeMetrics) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
723 | self.coverageMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
724 | menu.addAction(self.trUtf8('Code coverage...'), self.__showCodeCoverage) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
725 | self.coverageShowAnnotationMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
726 | menu.addAction(self.trUtf8('Show code coverage annotations'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
727 | self.__codeCoverageShowAnnotations) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
728 | self.coverageHideAnnotationMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
729 | menu.addAction(self.trUtf8('Hide code coverage annotations'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
730 | self.__codeCoverageHideAnnotations) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
731 | self.profileMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
732 | menu.addAction(self.trUtf8('Profile data...'), self.__showProfileData) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
733 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
734 | menu.aboutToShow.connect(self.__showContextMenuShow) |
92
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 | return 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 | def __initContextMenuGraphics(self): |
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 | 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
|
741 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
742 | menu = QMenu(self.trUtf8('Diagrams')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
743 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
744 | menu.addAction(self.trUtf8('Class Diagram...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
745 | self.__showClassDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
746 | menu.addAction(self.trUtf8('Package Diagram...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
747 | self.__showPackageDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
748 | menu.addAction(self.trUtf8('Imports Diagram...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
749 | self.__showImportsDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
750 | self.applicationDiagramMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
751 | menu.addAction(self.trUtf8('Application Diagram...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
752 | self.__showApplicationDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
753 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
754 | menu.aboutToShow.connect(self.__showContextMenuGraphics) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
755 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
756 | return menu |
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 | def __initContextMenuLanguages(self): |
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 | 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
|
761 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
762 | menu = QMenu(self.trUtf8("Languages")) |
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 | self.languagesActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
765 | self.noLanguageAct = menu.addAction(self.trUtf8("No Language")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
766 | self.noLanguageAct.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
767 | self.noLanguageAct.setData("None") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
768 | self.languagesActGrp.addAction(self.noLanguageAct) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
769 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
770 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
771 | self.supportedLanguages = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
772 | supportedLanguages = Lexers.getSupportedLanguages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
773 | languages = sorted(list(supportedLanguages.keys())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
774 | for language in languages: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
775 | if language != "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
776 | self.supportedLanguages[language] = supportedLanguages[language][:] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
777 | act = menu.addAction(self.supportedLanguages[language][0]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
778 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
779 | act.setData(language) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
780 | self.supportedLanguages[language].append(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
781 | self.languagesActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
782 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
783 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
784 | self.pygmentsAct = menu.addAction(self.trUtf8("Guessed")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
785 | self.pygmentsAct.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
786 | self.pygmentsAct.setData("Guessed") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
787 | self.languagesActGrp.addAction(self.pygmentsAct) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
788 | self.pygmentsSelAct = menu.addAction(self.trUtf8("Alternatives")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
789 | self.pygmentsSelAct.setData("Alternatives") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
790 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
791 | 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
|
792 | menu.aboutToShow.connect(self.__showContextMenuLanguages) |
92
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 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
795 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
796 | def __initContextMenuEncodings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
797 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
798 | 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
|
799 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
800 | self.supportedEncodings = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
801 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
802 | menu = QMenu(self.trUtf8("Encodings")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
803 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
804 | self.encodingsActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
805 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
806 | for encoding in sorted(Utilities.supportedCodecs): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
807 | act = menu.addAction(encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
808 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
809 | act.setData(encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
810 | self.supportedEncodings[encoding] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
811 | self.encodingsActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
812 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
813 | 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
|
814 | menu.aboutToShow.connect(self.__showContextMenuEncodings) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
815 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
816 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
817 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
818 | def __initContextMenuEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
819 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
820 | 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
|
821 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
822 | self.supportedEols = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
823 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
824 | menu = QMenu(self.trUtf8("End-of-Line Type")) |
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.eolActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
827 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
828 | act = menu.addAction(self.trUtf8("Unix")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
829 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
830 | act.setData('\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
831 | self.supportedEols['\n'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
832 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
833 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
834 | act = menu.addAction(self.trUtf8("Windows")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
835 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
836 | act.setData('\r\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
837 | self.supportedEols['\r\n'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
838 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
839 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
840 | act = menu.addAction(self.trUtf8("Macintosh")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
841 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
842 | act.setData('\r') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
843 | self.supportedEols['\r'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
844 | self.eolActGrp.addAction(act) |
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.__eolMenuTriggered) |
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.__showContextMenuEol) |
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 __initContextMenuExporters(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 Exporters 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 | menu = QMenu(self.trUtf8("Export as")) |
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 | supportedExporters = Exporters.getSupportedFormats() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
858 | exporters = sorted(list(supportedExporters.keys())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
859 | for exporter in exporters: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
860 | act = menu.addAction(supportedExporters[exporter]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
861 | act.setData(exporter) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
862 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
863 | menu.triggered.connect(self.__exportMenuTriggered) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
864 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
865 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
866 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
867 | def __initContextMenuMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
868 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
869 | 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
|
870 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
871 | self.marginMenuActs = {} |
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 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
874 | self.__initContextMenuUnifiedMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
875 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
876 | self.__initContextMenuSeparateMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
877 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
878 | def __initContextMenuSeparateMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
879 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
880 | 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
|
881 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
882 | # bookmark margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
883 | self.bmMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
884 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
885 | self.bmMarginMenu.addAction(self.trUtf8('Toggle bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
886 | self.menuToggleBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
887 | self.marginMenuActs["NextBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
888 | self.bmMarginMenu.addAction(self.trUtf8('Next bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
889 | self.nextBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
890 | self.marginMenuActs["PreviousBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
891 | self.bmMarginMenu.addAction(self.trUtf8('Previous bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
892 | self.previousBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
893 | self.marginMenuActs["ClearBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
894 | self.bmMarginMenu.addAction(self.trUtf8('Clear all bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
895 | self.clearBookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
896 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
897 | self.bmMarginMenu.aboutToShow.connect(self.__showContextMenuMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
898 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
899 | # breakpoint margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
900 | self.bpMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
901 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
902 | self.marginMenuActs["Breakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
903 | self.bpMarginMenu.addAction(self.trUtf8('Toggle breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
904 | self.menuToggleBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
905 | self.marginMenuActs["TempBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
906 | self.bpMarginMenu.addAction(self.trUtf8('Toggle temporary breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
907 | self.__menuToggleTemporaryBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
908 | self.marginMenuActs["EditBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
909 | self.bpMarginMenu.addAction(self.trUtf8('Edit breakpoint...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
910 | self.menuEditBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
911 | self.marginMenuActs["EnableBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
912 | self.bpMarginMenu.addAction(self.trUtf8('Enable breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
913 | self.__menuToggleBreakpointEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
914 | self.marginMenuActs["NextBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
915 | self.bpMarginMenu.addAction(self.trUtf8('Next breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
916 | self.menuNextBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
917 | self.marginMenuActs["PreviousBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
918 | self.bpMarginMenu.addAction(self.trUtf8('Previous breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
919 | self.menuPreviousBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
920 | self.marginMenuActs["ClearBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
921 | self.bpMarginMenu.addAction(self.trUtf8('Clear all breakpoints'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
922 | self.__menuClearBreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
923 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
924 | self.bpMarginMenu.aboutToShow.connect(self.__showContextMenuMargin) |
92
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 | # indicator margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
927 | self.indicMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
928 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
929 | self.marginMenuActs["GotoSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
930 | self.indicMarginMenu.addAction(self.trUtf8('Goto syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
931 | self.gotoSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
932 | self.marginMenuActs["ShowSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
933 | 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
|
934 | self.__showSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
935 | self.marginMenuActs["ClearSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
936 | self.indicMarginMenu.addAction(self.trUtf8('Clear syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
937 | self.clearSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
938 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
939 | self.marginMenuActs["NextWarningMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
940 | self.indicMarginMenu.addAction(self.trUtf8("Next warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
941 | self.nextFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
942 | self.marginMenuActs["PreviousWarningMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
943 | self.indicMarginMenu.addAction(self.trUtf8("Previous warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
944 | self.previousFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
945 | self.marginMenuActs["ShowWarning"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
946 | self.indicMarginMenu.addAction(self.trUtf8('Show warning message'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
947 | self.__showFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
948 | self.marginMenuActs["ClearWarnings"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
949 | self.indicMarginMenu.addAction(self.trUtf8('Clear warnings'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
950 | self.clearFlakesWarnings) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
951 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
952 | self.marginMenuActs["NextCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
953 | self.indicMarginMenu.addAction(self.trUtf8('Next uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
954 | self.nextUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
955 | self.marginMenuActs["PreviousCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
956 | self.indicMarginMenu.addAction(self.trUtf8('Previous uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
957 | self.previousUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
958 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
959 | self.marginMenuActs["NextTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
960 | self.indicMarginMenu.addAction(self.trUtf8('Next task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
961 | self.nextTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
962 | self.marginMenuActs["PreviousTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
963 | self.indicMarginMenu.addAction(self.trUtf8('Previous task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
964 | self.previousTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
965 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
966 | self.indicMarginMenu.aboutToShow.connect(self.__showContextMenuMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
967 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
968 | def __initContextMenuUnifiedMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
969 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
970 | 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
|
971 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
972 | self.marginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
973 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
974 | self.marginMenu.addAction(self.trUtf8('Toggle bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
975 | self.menuToggleBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
976 | self.marginMenuActs["NextBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
977 | self.marginMenu.addAction(self.trUtf8('Next bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
978 | self.nextBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
979 | self.marginMenuActs["PreviousBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
980 | self.marginMenu.addAction(self.trUtf8('Previous bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
981 | self.previousBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
982 | self.marginMenuActs["ClearBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
983 | self.marginMenu.addAction(self.trUtf8('Clear all bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
984 | self.clearBookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
985 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
986 | self.marginMenuActs["GotoSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
987 | self.marginMenu.addAction(self.trUtf8('Goto syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
988 | self.gotoSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
989 | self.marginMenuActs["ShowSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
990 | 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
|
991 | self.__showSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
992 | self.marginMenuActs["ClearSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
993 | self.marginMenu.addAction(self.trUtf8('Clear syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
994 | self.clearSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
995 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
996 | self.marginMenuActs["NextWarningMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
997 | self.marginMenu.addAction(self.trUtf8("Next warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
998 | self.nextFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
999 | self.marginMenuActs["PreviousWarningMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1000 | self.marginMenu.addAction(self.trUtf8("Previous warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1001 | self.previousFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1002 | self.marginMenuActs["ShowWarning"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1003 | self.marginMenu.addAction(self.trUtf8('Show warning message'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1004 | self.__showFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1005 | self.marginMenuActs["ClearWarnings"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1006 | self.marginMenu.addAction(self.trUtf8('Clear warnings'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1007 | self.clearFlakesWarnings) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1008 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1009 | self.marginMenuActs["Breakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1010 | self.marginMenu.addAction(self.trUtf8('Toggle breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1011 | self.menuToggleBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1012 | self.marginMenuActs["TempBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1013 | self.marginMenu.addAction(self.trUtf8('Toggle temporary breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1014 | self.__menuToggleTemporaryBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1015 | self.marginMenuActs["EditBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1016 | self.marginMenu.addAction(self.trUtf8('Edit breakpoint...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1017 | self.menuEditBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1018 | self.marginMenuActs["EnableBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1019 | self.marginMenu.addAction(self.trUtf8('Enable breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1020 | self.__menuToggleBreakpointEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1021 | self.marginMenuActs["NextBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1022 | self.marginMenu.addAction(self.trUtf8('Next breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1023 | self.menuNextBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1024 | self.marginMenuActs["PreviousBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1025 | self.marginMenu.addAction(self.trUtf8('Previous breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1026 | self.menuPreviousBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1027 | self.marginMenuActs["ClearBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1028 | self.marginMenu.addAction(self.trUtf8('Clear all breakpoints'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1029 | self.__menuClearBreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1030 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1031 | self.marginMenuActs["NextCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1032 | self.marginMenu.addAction(self.trUtf8('Next uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1033 | self.nextUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1034 | self.marginMenuActs["PreviousCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1035 | self.marginMenu.addAction(self.trUtf8('Previous uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1036 | self.previousUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1037 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1038 | self.marginMenuActs["NextTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1039 | self.marginMenu.addAction(self.trUtf8('Next task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1040 | self.nextTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1041 | self.marginMenuActs["PreviousTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1042 | self.marginMenu.addAction(self.trUtf8('Previous task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1043 | self.previousTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1044 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1045 | self.marginMenuActs["LMBbookmarks"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1046 | self.marginMenu.addAction(self.trUtf8('LMB toggles bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1047 | self.__lmBbookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1048 | self.marginMenuActs["LMBbookmarks"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1049 | self.marginMenuActs["LMBbookmarks"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1050 | self.marginMenuActs["LMBbreakpoints"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1051 | self.marginMenu.addAction(self.trUtf8('LMB toggles breakpoints'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1052 | self.__lmBbreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1053 | self.marginMenuActs["LMBbreakpoints"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1054 | self.marginMenuActs["LMBbreakpoints"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1055 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
1056 | self.marginMenu.aboutToShow.connect(self.__showContextMenuMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1057 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1058 | def __exportMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1059 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1060 | 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
|
1061 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1062 | @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
|
1063 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1064 | exporterFormat = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1065 | self.exportFile(exporterFormat) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1066 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1067 | def exportFile(self, exporterFormat): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1068 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1069 | Public method to export the file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1070 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1071 | @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
|
1072 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1073 | if exporterFormat: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1074 | exporter = Exporters.getExporter(exporterFormat, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1075 | if exporter: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1076 | exporter.exportSource() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1077 | else: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
1078 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1079 | self.trUtf8("Export source"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1080 | self.trUtf8("""<p>No exporter available for the """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1081 | """export format <b>{0}</b>. Aborting...</p>""")\ |
535
4b00d7336e19
Streamlined the use of QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
520
diff
changeset
|
1082 | .format(exporterFormat)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1083 | else: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
1084 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1085 | self.trUtf8("Export source"), |
535
4b00d7336e19
Streamlined the use of QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
520
diff
changeset
|
1086 | self.trUtf8("""No export format given. Aborting...""")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1087 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1088 | def __showContextMenuLanguages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1089 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1090 | 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
|
1091 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1092 | if self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1093 | self.pygmentsSelAct.setText( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1094 | self.trUtf8("Alternatives ({0})").format(self.getLanguage())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1095 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1096 | 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
|
1097 | self.showMenu.emit("Languages", self.languagesMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1098 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1099 | def __selectPygmentsLexer(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1100 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1101 | Private method to select a specific pygments lexer. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1102 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1103 | @return name of the selected pygments lexer (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1104 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1105 | from pygments.lexers import get_all_lexers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1106 | 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
|
1107 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1108 | lexerSel = lexerList.index(self.getLanguage()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1109 | except ValueError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1110 | lexerSel = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1111 | lexerName, ok = QInputDialog.getItem(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1112 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1113 | self.trUtf8("Pygments Lexer"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1114 | self.trUtf8("Select the Pygments lexer to apply."), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1115 | lexerList, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1116 | lexerSel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1117 | False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1118 | if ok and lexerName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1119 | return lexerName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1120 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1121 | return "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1122 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1123 | def __languageMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1124 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1125 | 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
|
1126 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1127 | @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
|
1128 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1129 | if act == self.noLanguageAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1130 | self.__resetLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1131 | elif act == self.pygmentsAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1132 | self.setLanguage("dummy.pygments") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1133 | elif act == self.pygmentsSelAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1134 | language = self.__selectPygmentsLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1135 | if language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1136 | self.setLanguage("dummy.pygments", pyname = language) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1137 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1138 | language = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1139 | if language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1140 | self.setLanguage(self.supportedLanguages[language][1]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1141 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1142 | def __languageChanged(self, language, propagate = True): |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1143 | """ |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1144 | 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
|
1145 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1146 | @param language language to be set (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1147 | @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
|
1148 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1149 | if language == '': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1150 | self.__resetLanguage(propagate = propagate) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1151 | elif language == "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1152 | self.setLanguage("dummy.pygments") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1153 | elif language.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1154 | pyname = language.split("|", 1)[1] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1155 | self.setLanguage("dummy.pygments", pyname = pyname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1156 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1157 | self.setLanguage(self.supportedLanguages[language][1], propagate = propagate) |
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 | def __resetLanguage(self, propagate = True): |
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 | Private method used to reset the language selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1162 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1163 | @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
|
1164 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1165 | if self.lexer_ is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1166 | (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
|
1167 | self.SCN_STYLENEEDED.disconnect(self.__styleNeeded) |
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 | self.apiLanguage = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1170 | self.lexer_ = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1171 | self.__lexerReset = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1172 | self.setLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1173 | self.setMonospaced(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1174 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1175 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1176 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1177 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1178 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1179 | if not self.inLanguageChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1180 | self.inLanguageChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1181 | self.languageChanged.emit(self.apiLanguage) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1182 | self.inLanguageChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1183 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1184 | def setLanguage(self, filename, initTextDisplay = True, propagate = True, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1185 | pyname = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1186 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1187 | Public method to set a lexer language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1188 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1189 | @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
|
1190 | @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
|
1191 | is required as well (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1192 | @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
|
1193 | @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
|
1194 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1195 | self.__lexerReset = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1196 | self.__bindLexer(filename, pyname = pyname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1197 | self.__bindCompleter(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1198 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1199 | self.__checkLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1200 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1201 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1202 | if initTextDisplay: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1203 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1204 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1205 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1206 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1207 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1208 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1209 | if not self.inLanguageChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1210 | self.inLanguageChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1211 | self.languageChanged.emit(self.apiLanguage) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1212 | self.inLanguageChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1213 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1214 | def __checkLanguage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1215 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1216 | 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
|
1217 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1218 | if self.apiLanguage == "": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1219 | self.noLanguageAct.setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1220 | elif self.apiLanguage == "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1221 | self.pygmentsAct.setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1222 | elif self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1223 | act = self.languagesActGrp.checkedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1224 | if act: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1225 | act.setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1226 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1227 | self.supportedLanguages[self.apiLanguage][2].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1228 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1229 | def projectLexerAssociationsChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1230 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1231 | 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
|
1232 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1233 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1234 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1235 | def __showContextMenuEncodings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1236 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1237 | 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
|
1238 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1239 | self.showMenu.emit("Encodings", self.encodingsMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1240 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1241 | def __encodingsMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1242 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1243 | 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
|
1244 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1245 | @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
|
1246 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1247 | encoding = act.data() |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
1248 | self.__encodingChanged("{0}-selected".format(encoding)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1249 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1250 | def __checkEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1251 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1252 | 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
|
1253 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1254 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1255 | self.supportedEncodings[self.__normalizedEncoding()].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1256 | except (AttributeError, KeyError): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1257 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1258 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1259 | def __encodingChanged(self, encoding, propagate = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1260 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1261 | 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
|
1262 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1263 | @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
|
1264 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1265 | self.encoding = encoding |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1266 | self.__checkEncoding() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1267 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1268 | if not self.inEncodingChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1269 | self.inEncodingChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1270 | self.encodingChanged.emit(self.encoding) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1271 | self.inEncodingChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1272 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1273 | def __normalizedEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1274 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1275 | Private method to calculate the normalized encoding string. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1276 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1277 | @return normalized encoding (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1278 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1279 | return self.encoding.replace("-default", "")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1280 | .replace("-guessed", "")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1281 | .replace("-selected", "") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1282 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1283 | def __showContextMenuEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1284 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1285 | 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
|
1286 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1287 | self.showMenu.emit("Eol", self.eolMenu, self) |
92
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 __eolMenuTriggered(self, act): |
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 handle the selection of an eol type. |
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 | @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
|
1294 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1295 | eol = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1296 | self.setEolModeByEolString(eol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1297 | self.convertEols(self.eolMode()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1298 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1299 | def __checkEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1300 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1301 | 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
|
1302 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1303 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1304 | self.supportedEols[self.getLineSeparator()].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1305 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1306 | pass |
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 | def __eolChanged(self): |
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 | 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
|
1311 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1312 | self.__checkEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1313 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1314 | if not self.inEolChanged: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1315 | self.inEolChanged = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1316 | eol = self.getLineSeparator() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1317 | self.eolChanged.emit(eol) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1318 | self.inEolChanged = False |
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 | def __bindLexer(self, filename, pyname = ""): |
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 | 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
|
1323 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1324 | @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
|
1325 | @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
|
1326 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1327 | if self.lexer_ is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1328 | (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
|
1329 | self.SCN_STYLENEEDED.disconnect(self.__styleNeeded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1330 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1331 | language = "" |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
1332 | 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
|
1333 | 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
|
1334 | if not language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1335 | filename = os.path.basename(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1336 | language = Preferences.getEditorLexerAssoc(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1337 | if language.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1338 | pyname = language.split("|", 1)[1] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1339 | language = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1340 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1341 | self.lexer_ = Lexers.getLexer(language, self, pyname = pyname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1342 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1343 | self.setLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1344 | self.apiLanguage = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1345 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1346 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1347 | if pyname: |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
1348 | self.apiLanguage = "Pygments|{0}".format(pyname) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1349 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1350 | self.apiLanguage = self.lexer_.language() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1351 | if self.apiLanguage == "POV": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1352 | self.apiLanguage = "Povray" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1353 | self.setLexer(self.lexer_) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1354 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1355 | 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
|
1356 | 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
|
1357 | self.SCN_STYLENEEDED.connect(self.__styleNeeded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1358 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1359 | # 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
|
1360 | 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
|
1361 | fdesc = Preferences.Prefs.settings.value(key) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1362 | if fdesc is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1363 | font = QFont(fdesc[0], int(fdesc[1])) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1364 | self.lexer_.setDefaultFont(font) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1365 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1366 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1367 | # now set the lexer properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1368 | self.lexer_.initProperties() |
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 | # initialize the lexer APIs settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1371 | api = self.vm.getAPIsManager().getAPIs(self.apiLanguage) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1372 | if api is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1373 | self.lexer_.setAPIs(api.getQsciAPIs()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1374 | self.acAPI = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1375 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1376 | self.acAPI = False |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1377 | self.autoCompletionAPIsAvailable.emit(self.acAPI) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1378 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1379 | def __styleNeeded(self, position): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1380 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1381 | 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
|
1382 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1383 | @param position end position, that needs styling (integer) |
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 | self.lexer_.styleText(self.getEndStyled(), position) |
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 | def getLexer(self): |
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 | 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
|
1390 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1391 | @return the lexer object (Lexer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1392 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1393 | return self.lexer_ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1394 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1395 | def getLanguage(self): |
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 | 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
|
1398 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1399 | @return language of the editor (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1400 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1401 | if self.apiLanguage == "Guessed" or self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1402 | return self.lexer_.name() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1403 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1404 | return self.apiLanguage |
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 | def __bindCompleter(self, filename): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1407 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1408 | 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
|
1409 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1410 | @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
|
1411 | completer language (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1412 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1413 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1414 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1415 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1416 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1417 | filename = os.path.basename(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1418 | apiLanguage = Preferences.getEditorLexerAssoc(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1419 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1420 | self.completer = TypingCompleters.getCompleter(apiLanguage, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1421 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1422 | def getCompleter(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1423 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1424 | 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
|
1425 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1426 | @return the completer object (CompleterBase) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1427 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1428 | return self.completer |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1429 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1430 | def __modificationChanged(self, m): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1431 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1432 | Private slot to handle the modificationChanged signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1433 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1434 | It emits the signal modificationStatusChanged with parameters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1435 | m and self. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1436 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1437 | @param m modification status |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1438 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1439 | 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
|
1440 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1441 | if Preferences.getEditor("AutoCheckSyntax"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1442 | self.clearSyntaxError() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1443 | 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
|
1444 | 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
|
1445 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1446 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1447 | def __cursorPositionChanged(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1448 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1449 | Private slot to handle the cursorPositionChanged signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1450 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1451 | It emits the signal cursorChanged with parameters fileName, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1452 | line and pos. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1453 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1454 | @param line line number of the cursor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1455 | @param index position in line of the cursor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1456 | """ |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
1457 | 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
|
1458 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1459 | if Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1460 | self.__markOccurrencesTimer.stop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1461 | self.__markOccurrencesTimer.start() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1462 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1463 | if self.spell is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1464 | # do spell checking |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1465 | doSpelling = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1466 | if self.lastLine == line: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1467 | start, end = self.getWordBoundaries(line, index, useWordChars = False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1468 | if start <= self.lastIndex and self.lastIndex <= end: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1469 | doSpelling = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1470 | if doSpelling: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1471 | pos = self.positionFromLineIndex(self.lastLine, self.lastIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1472 | self.spell.checkWord(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1473 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1474 | self.lastLine = line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1475 | self.lastIndex = index |
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 | def __modificationReadOnly(self): |
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 | Private slot to handle the modificationAttempted signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1480 | """ |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
1481 | E5MessageBox.warning(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1482 | self.trUtf8("Modification of Read Only file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1483 | 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
|
1484 | """Please save to a different file first.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1485 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1486 | def setNoName(self, noName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1487 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1488 | 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
|
1489 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1490 | @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
|
1491 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1492 | self.noName = noName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1493 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1494 | def getNoName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1495 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1496 | 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
|
1497 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1498 | @return display string for this unnamed editor (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1499 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1500 | return self.noName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1501 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1502 | def getFileName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1503 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1504 | 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
|
1505 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1506 | @return filename of the displayed file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1507 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1508 | return self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1509 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1510 | def getFileType(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1511 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1512 | 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
|
1513 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1514 | @return type of the displayed file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1515 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1516 | return self.filetype |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1517 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1518 | def getEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1519 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1520 | Public method to return the current encoding. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1521 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1522 | @return current encoding (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1523 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1524 | return self.encoding |
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 | def getFolds(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1527 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1528 | Public method to get a list line numbers of collapsed folds. |
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 | @return list of line numbers of folded lines (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1531 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1532 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1533 | folds = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1534 | maxline = self.lines() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1535 | while line < maxline: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1536 | if self.foldHeaderAt(line) and not self.foldExpandedAt(line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1537 | folds.append(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1538 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1539 | return folds |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1540 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1541 | def isPyFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1542 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1543 | 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
|
1544 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1545 | @return flag indicating a Python file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1546 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1547 | return self.filetype == "Python" or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1548 | (self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1549 | os.path.splitext(self.fileName)[1] in self.pyExtensions) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1550 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1551 | def isPy3File(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1552 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1553 | 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
|
1554 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1555 | @return flag indicating a Python3 file (boolean) |
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 | return self.filetype == "Python3" or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1558 | (self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1559 | os.path.splitext(self.fileName)[1] in self.py3Extensions) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1560 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1561 | def isRubyFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1562 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1563 | 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
|
1564 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1565 | @return flag indicating a Ruby file (boolean) |
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 | return self.filetype == "Ruby" or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1568 | (self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1569 | os.path.splitext(self.fileName)[1] in self.rbExtensions) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1570 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1571 | def highlightVisible(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1572 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1573 | 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
|
1574 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1575 | if self.lastHighlight is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1576 | lineno = self.markerLine(self.lastHighlight) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1577 | self.ensureVisible(lineno+1) |
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 | def highlight(self, line = None, error = False, syntaxError = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1580 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1581 | 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
|
1582 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1583 | @param line line number to highlight (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1584 | @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
|
1585 | @param syntaxError flag indicating a syntax error (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1586 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1587 | if line is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1588 | self.lastHighlight = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1589 | if self.lastErrorMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1590 | self.markerDeleteHandle(self.lastErrorMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1591 | self.lastErrorMarker = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1592 | if self.lastCurrMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1593 | self.markerDeleteHandle(self.lastCurrMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1594 | self.lastCurrMarker = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1595 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1596 | if error: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1597 | if self.lastErrorMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1598 | self.markerDeleteHandle(self.lastErrorMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1599 | self.lastErrorMarker = self.markerAdd(line-1, self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1600 | self.lastHighlight = self.lastErrorMarker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1601 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1602 | if self.lastCurrMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1603 | self.markerDeleteHandle(self.lastCurrMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1604 | self.lastCurrMarker = self.markerAdd(line-1, self.currentline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1605 | self.lastHighlight = self.lastCurrMarker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1606 | self.setCursorPosition(line-1, 0) |
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 | def getHighlightPosition(self): |
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 | 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
|
1611 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1612 | @return line number of the highlight bar (integer) |
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 | if self.lastHighlight is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1615 | return self.markerLine(self.lastHighlight) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1616 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1617 | return 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1618 | |
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 | ## Breakpoint handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1623 | def __linesChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1624 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1625 | Private method to track text changes. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1626 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1627 | This method checks, if lines have been inserted or removed in order to |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1628 | update the breakpoints. |
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 | if self.breaks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1631 | bps = [] # list of breakpoints |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
1632 | for handle, (ln, cond, temp, enabled, ignorecount) in self.breaks.items(): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1633 | line = self.markerLine(handle) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1634 | bps.append((ln, line, (cond, temp, enabled, ignorecount))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1635 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1636 | self.breaks = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1637 | for bp in bps: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1638 | index = self.breakpointModel.getBreakPointIndex(self.fileName, bp[0]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1639 | self.breakpointModel.setBreakPointByIndex(index, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1640 | self.fileName, bp[1], bp[2]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1641 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1642 | def __restoreBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1643 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1644 | Private method to restore the breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1645 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1646 | for handle in list(self.breaks.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1647 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1648 | self.__addBreakPoints(QModelIndex(), 0, self.breakpointModel.rowCount() - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1649 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1650 | def __deleteBreakPoints(self, parentIndex, start, end): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1651 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1652 | Private slot to delete breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1653 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1654 | @param parentIndex index of parent item (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1655 | @param start start row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1656 | @param end end row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1657 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1658 | for row in range(start, end + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1659 | index = self.breakpointModel.index(row, 0, parentIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1660 | fn, lineno = self.breakpointModel.getBreakPointByIndex(index)[0:2] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1661 | if fn == self.fileName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1662 | self.clearBreakpoint(lineno) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1663 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1664 | def __changeBreakPoints(self, startIndex, endIndex): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1665 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1666 | Private slot to set changed breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1667 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1668 | @param indexes indexes of changed breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1669 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1670 | self.__addBreakPoints(QModelIndex(), startIndex.row(), endIndex.row()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1671 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1672 | def __breakPointDataAboutToBeChanged(self, startIndex, endIndex): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1673 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1674 | 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
|
1675 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1676 | @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
|
1677 | @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
|
1678 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1679 | self.__deleteBreakPoints(QModelIndex(), startIndex.row(), endIndex.row()) |
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 | def __addBreakPoints(self, parentIndex, start, end): |
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 | Private slot to add breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1684 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1685 | @param parentIndex index of parent item (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1686 | @param start start row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1687 | @param end end row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1688 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1689 | for row in range(start, end + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1690 | index = self.breakpointModel.index(row, 0, parentIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1691 | fn, line, cond, temp, enabled, ignorecount = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1692 | self.breakpointModel.getBreakPointByIndex(index)[:6] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1693 | if fn == self.fileName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1694 | self.newBreakpointWithProperties(line, (cond, temp, enabled, ignorecount)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1695 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1696 | def clearBreakpoint(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1697 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1698 | Public method to clear a breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1699 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1700 | 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
|
1701 | 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
|
1702 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1703 | @param line linenumber of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1704 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1705 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1706 | if self.markerLine(handle) == line-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1707 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1708 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1709 | # not found, simply ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1710 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1711 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1712 | del self.breaks[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1713 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1714 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1715 | def newBreakpointWithProperties(self, line, properties): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1716 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1717 | 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
|
1718 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1719 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1720 | @param properties properties for the breakpoint (tuple) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1721 | (condition, temporary flag, enabled flag, ignore count) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1722 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1723 | if not properties[2]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1724 | marker = self.dbreakpoint |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1725 | elif properties[0]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1726 | 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
|
1727 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1728 | 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
|
1729 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1730 | handle = self.markerAdd(line-1, marker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1731 | self.breaks[handle] = (line,) + properties |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
1732 | self.breakpointToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1733 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1734 | def __toggleBreakpoint(self, line, temporary = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1735 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1736 | Private method to toggle a breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1737 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1738 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1739 | @param temporary flag indicating a temporary breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1740 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1741 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1742 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1743 | # 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
|
1744 | index = self.breakpointModel.getBreakPointIndex(self.fileName, line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1745 | if Preferences.getDebugger("ThreeStateBreakPoints") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1746 | not self.breakpointModel.isBreakPointTemporaryByIndex(index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1747 | self.breakpointModel.deleteBreakPointByIndex(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1748 | self.__addBreakPoint(line, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1749 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1750 | 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
|
1751 | self.breakpointToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1752 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1753 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1754 | self.__addBreakPoint(line, temporary) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1755 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1756 | def __addBreakPoint(self, line, temporary): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1757 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1758 | Private method to add a new breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1759 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1760 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1761 | @param temporary flag indicating a temporary breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1762 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1763 | if self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1764 | (self.isPyFile() or self.isPy3File() or self.isRubyFile()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1765 | self.breakpointModel.addBreakPoint(self.fileName, line, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1766 | ('', temporary, True, 0)) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
1767 | self.breakpointToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1768 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1769 | def __toggleBreakpointEnabled(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1770 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1771 | Private method to toggle a breakpoints enabled status. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1772 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1773 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1774 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1775 | 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
|
1776 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1777 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1778 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1779 | # no breakpoint found on that line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1780 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1781 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1782 | index = self.breakpointModel.getBreakPointIndex(self.fileName, line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1783 | self.breakpointModel.setBreakPointEnabledByIndex(index, not enabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1784 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1785 | def curLineHasBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1786 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1787 | 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
|
1788 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1789 | @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
|
1790 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1791 | line, _ = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1792 | return self.markersAtLine(line) & self.breakpointMask != 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1793 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1794 | def hasBreakpoints(self): |
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 check for the presence of breakpoints. |
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 | @return flag indicating the presence of breakpoints (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1799 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1800 | return len(self.breaks) > 0 |
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 | def __menuToggleTemporaryBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1803 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1804 | 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
|
1805 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1806 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1807 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1808 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1809 | self.__toggleBreakpoint(self.line, 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1810 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1811 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1812 | def menuToggleBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1813 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1814 | 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
|
1815 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1816 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1817 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1818 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1819 | self.__toggleBreakpoint(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1820 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1821 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1822 | def __menuToggleBreakpointEnabled(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1823 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1824 | 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
|
1825 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1826 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1827 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1828 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1829 | self.__toggleBreakpointEnabled(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1830 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1831 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1832 | def menuEditBreakpoint(self, line = None): |
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 | 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
|
1835 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1836 | @param line linenumber of the breakpoint to edit |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1837 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1838 | if line is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1839 | self.line = line - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1840 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1841 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1842 | found = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1843 | 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
|
1844 | if self.markerLine(handle) == self.line: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1845 | found = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1846 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1847 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1848 | if found: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1849 | index = self.breakpointModel.getBreakPointIndex(self.fileName, ln) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1850 | if not index.isValid(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1851 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1852 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1853 | dlg = EditBreakpointDialog((self.fileName, ln), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1854 | (cond, temp, enabled, ignorecount), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1855 | self.condHistory, self, modal = True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1856 | if dlg.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1857 | cond, temp, enabled, ignorecount = dlg.getData() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1858 | self.breakpointModel.setBreakPointByIndex(index, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1859 | self.fileName, ln, (cond, temp, enabled, ignorecount)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1860 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1861 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1862 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1863 | def menuNextBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1864 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1865 | 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
|
1866 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1867 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1868 | if line == self.lines()-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1869 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1870 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1871 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1872 | bpline = self.markerFindNext(line, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1873 | if bpline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1874 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1875 | bpline = self.markerFindNext(0, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1876 | if bpline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1877 | self.setCursorPosition(bpline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1878 | self.ensureLineVisible(bpline) |
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 | def menuPreviousBreakpoint(self): |
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 | 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
|
1883 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1884 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1885 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1886 | line = self.lines()-1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1887 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1888 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1889 | bpline = self.markerFindPrevious(line, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1890 | if bpline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1891 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1892 | bpline = self.markerFindPrevious(self.lines()-1, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1893 | if bpline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1894 | self.setCursorPosition(bpline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1895 | self.ensureLineVisible(bpline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1896 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1897 | def __menuClearBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1898 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1899 | 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
|
1900 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1901 | self.__clearBreakpoints(self.fileName) |
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 | def __clearBreakpoints(self, fileName): |
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 | Private slot to clear all breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1906 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1907 | idxList = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1908 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1909 | index = self.breakpointModel.getBreakPointIndex(fileName, ln) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1910 | if index.isValid(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1911 | idxList.append(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1912 | if idxList: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1913 | self.breakpointModel.deleteBreakPoints(idxList) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1914 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1915 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1916 | ## Bookmark handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1919 | def toggleBookmark(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1920 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1921 | Public method to toggle a bookmark. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1922 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1923 | @param line line number of the bookmark (integer) |
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 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1926 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1927 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1928 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1929 | # set a new bookmark |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1930 | handle = self.markerAdd(line - 1, self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1931 | 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
|
1932 | self.bookmarkToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1933 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1934 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1935 | self.bookmarks.remove(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1936 | self.markerDeleteHandle(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1937 | self.bookmarkToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1938 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1939 | def getBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1940 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1941 | Public method to retrieve the bookmarks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1942 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1943 | @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
|
1944 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1945 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1946 | bmlist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1947 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1948 | bmlist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1949 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1950 | bmlist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1951 | return bmlist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1952 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1953 | def hasBookmarks(self): |
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 | 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
|
1956 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1957 | @return flag indicating the presence of bookmarks (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1958 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1959 | return len(self.bookmarks) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1960 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1961 | def menuToggleBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1962 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1963 | 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
|
1964 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1965 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1966 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1967 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1968 | self.toggleBookmark(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1969 | self.line = -1 |
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 | def nextBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1972 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1973 | 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
|
1974 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1975 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1976 | if line == self.lines()-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1977 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1978 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1979 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1980 | bmline = self.markerFindNext(line, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1981 | if bmline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1982 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1983 | bmline = self.markerFindNext(0, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1984 | if bmline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1985 | self.setCursorPosition(bmline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1986 | self.ensureLineVisible(bmline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1987 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1988 | def previousBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1989 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1990 | 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
|
1991 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1992 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1993 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1994 | line = self.lines()-1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1995 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1996 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1997 | bmline = self.markerFindPrevious(line, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1998 | if bmline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1999 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2000 | 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
|
2001 | if bmline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2002 | self.setCursorPosition(bmline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2003 | self.ensureLineVisible(bmline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2004 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2005 | def clearBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2006 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2007 | 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
|
2008 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2009 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2010 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2011 | self.bookmarks = [] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2012 | self.bookmarkToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2013 | |
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 | ## Printing methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2016 | ############################################################################ |
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 printFile(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 slot to print the text. |
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 | printer = Printer(mode = QPrinter.HighResolution) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2023 | sb = e5App().getObject("UserInterface").statusBar() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2024 | printDialog = QPrintDialog(printer, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2025 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2026 | printDialog.addEnabledOption(QAbstractPrintDialog.PrintSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2027 | if printDialog.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2028 | sb.showMessage(self.trUtf8('Printing...')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2029 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2030 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2031 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2032 | printer.setDocName(os.path.basename(fn)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2033 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2034 | printer.setDocName(self.noName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2035 | if printDialog.printRange() == QAbstractPrintDialog.Selection: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2036 | # get the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2037 | fromLine, fromIndex, toLine, toIndex = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2038 | if toIndex == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2039 | toLine -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2040 | # Qscintilla seems to print one line more than told |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2041 | res = printer.printRange(self, fromLine, toLine-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2042 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2043 | res = printer.printRange(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2044 | if res: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2045 | sb.showMessage(self.trUtf8('Printing completed'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2046 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2047 | sb.showMessage(self.trUtf8('Error while printing'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2048 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2049 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2050 | sb.showMessage(self.trUtf8('Printing aborted'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2051 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2052 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2053 | def printPreviewFile(self): |
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 | 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
|
2056 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2057 | from PyQt4.QtGui import QPrintPreviewDialog |
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 | printer = Printer(mode = QPrinter.HighResolution) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2060 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2061 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2062 | printer.setDocName(os.path.basename(fn)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2063 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2064 | printer.setDocName(self.noName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2065 | 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
|
2066 | preview.paintRequested.connect(self.__printPreview) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2067 | preview.exec_() |
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 | def __printPreview(self, printer): |
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 | Private slot to generate a print preview. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2072 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2073 | @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
|
2074 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2075 | printer.printRange(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2076 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2077 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2078 | ## Task handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2079 | ############################################################################ |
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 | def hasTaskMarkers(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2082 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2083 | 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
|
2084 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2085 | @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
|
2086 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2087 | return self.__hasTaskMarkers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2088 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2089 | def nextTask(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2090 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2091 | 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
|
2092 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2093 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2094 | if line == self.lines()-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2095 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2096 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2097 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2098 | taskline = self.markerFindNext(line, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2099 | if taskline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2100 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2101 | taskline = self.markerFindNext(0, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2102 | if taskline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2103 | self.setCursorPosition(taskline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2104 | self.ensureLineVisible(taskline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2105 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2106 | def previousTask(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2107 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2108 | 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
|
2109 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2110 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2111 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2112 | line = self.lines()-1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2113 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2114 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2115 | taskline = self.markerFindPrevious(line, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2116 | if taskline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2117 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2118 | 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
|
2119 | if taskline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2120 | self.setCursorPosition(taskline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2121 | self.ensureLineVisible(taskline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2122 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2123 | def extractTasks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2124 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2125 | Public slot to extract all tasks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2126 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2127 | todoMarkers = Preferences.getTasks("TasksMarkers").split() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2128 | bugfixMarkers = Preferences.getTasks("TasksMarkersBugfix").split() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2129 | txtList = self.text().split(self.getLineSeparator()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2130 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2131 | # clear all task markers and tasks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2132 | self.markerDeleteAll(self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2133 | self.taskViewer.clearFileTasks(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2134 | self.__hasTaskMarkers = False |
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 | # now search tasks and record them |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2137 | lineIndex = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2138 | for line in txtList: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2139 | lineIndex += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2140 | shouldContinue = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2141 | # normal tasks first |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2142 | for tasksMarker in todoMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2143 | index = line.find(tasksMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2144 | if index > -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2145 | task = line[index:] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2146 | self.markerAdd(lineIndex, self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2147 | self.taskViewer.addFileTask(task, self.fileName, lineIndex + 1, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2148 | self.__hasTaskMarkers = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2149 | shouldContinue = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2150 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2151 | if shouldContinue: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2152 | continue |
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 | # bugfix tasks second |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2155 | for tasksMarker in bugfixMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2156 | index = line.find(tasksMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2157 | if index > -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2158 | task = line[index:] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2159 | self.markerAdd(lineIndex, self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2160 | self.taskViewer.addFileTask(task, self.fileName, lineIndex+1, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2161 | self.__hasTaskMarkers = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2162 | break |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2163 | self.taskMarkersUpdated.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2164 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2165 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2166 | ## File handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2169 | def checkDirty(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2170 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2171 | 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
|
2172 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2173 | @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
|
2174 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2175 | if self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2176 | fn = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2177 | if fn is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2178 | fn = self.noName |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
2179 | res = E5MessageBox.warning(self.vm, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2180 | self.trUtf8("File Modified"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2181 | 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
|
2182 | .format(fn), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2183 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2184 | QMessageBox.Abort | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2185 | QMessageBox.Discard | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2186 | QMessageBox.Save), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2187 | QMessageBox.Save) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2188 | if res == QMessageBox.Save: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2189 | ok, newName = self.saveFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2190 | if ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2191 | self.vm.setEditorName(self, newName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2192 | return ok |
547
cceececd1312
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
546
diff
changeset
|
2193 | elif res == QMessageBox.Abort: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2194 | return False |
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 | return True |
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 | def revertToUnmodified(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2199 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2200 | 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
|
2201 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2202 | undo_ = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2203 | while self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2204 | if undo_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2205 | # try undo first |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2206 | if self.isUndoAvailable(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2207 | self.undo() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2208 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2209 | undo_ = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2210 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2211 | # try redo next |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2212 | if self.isRedoAvailable(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2213 | self.redo() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2214 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2215 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2216 | # Couldn't find the unmodified state |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2217 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2218 | def readFile(self, fn, createIt = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2219 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2220 | 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
|
2221 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2222 | @param fn filename to read from (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2223 | @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
|
2224 | one doesn't exist (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2225 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2226 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2227 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2228 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2229 | if createIt and not os.path.exists(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2230 | f = open(fn, "w") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2231 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2232 | txt, self.encoding = Utilities.readEncodedFile(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2233 | except (UnicodeDecodeError, IOError) as why: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2234 | QApplication.restoreOverrideCursor() |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
2235 | 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
|
2236 | 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
|
2237 | '<p>Reason: {1}</p>') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2238 | .format(fn, str(why))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2239 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2240 | raise |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2241 | fileEol = self.detectEolString(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2242 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2243 | modified = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2244 | if (not Preferences.getEditor("TabForIndentation")) and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2245 | Preferences.getEditor("ConvertTabsOnLoad") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2246 | not (self.lexer_ and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2247 | self.lexer_.alwaysKeepTabs()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2248 | txtExpanded = txt.expandtabs(Preferences.getEditor("TabWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2249 | if txtExpanded != txt: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2250 | modified = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2251 | txt = txtExpanded |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2252 | del txtExpanded |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2253 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2254 | self.setText(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2255 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2256 | # perform automatic eol conversion |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2257 | if Preferences.getEditor("AutomaticEOLConversion"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2258 | self.convertEols(self.eolMode()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2259 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2260 | self.setEolModeByEolString(fileEol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2261 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2262 | self.extractTasks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2263 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2264 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2265 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2266 | self.setModified(modified) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2267 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2268 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2269 | def __removeTrailingWhitespace(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2270 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2271 | Private method to remove trailing whitespace. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2272 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2273 | 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
|
2274 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2275 | 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
|
2276 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2277 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2278 | self.replaceTarget("") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2279 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2280 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2281 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2282 | def writeFile(self, fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2283 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2284 | 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
|
2285 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2286 | @param fn filename to write to (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2287 | @return flag indicating success (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2288 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2289 | if Preferences.getEditor("StripTrailingWhitespace"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2290 | self.__removeTrailingWhitespace() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2291 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2292 | txt = self.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2293 | # work around glitch in scintilla: always make sure, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2294 | # that the last line is terminated properly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2295 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2296 | if eol: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2297 | if len(txt) >= len(eol): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2298 | if txt[-len(eol):] != eol: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2299 | txt += eol |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2300 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2301 | txt += eol |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2302 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2303 | # 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
|
2304 | createBackup = Preferences.getEditor("CreateBackupFile") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2305 | if createBackup: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2306 | if os.path.islink(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2307 | fn = os.path.realpath(fn) |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
2308 | bfn = '{0}~'.format(fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2309 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2310 | permissions = os.stat(fn).st_mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2311 | perms_valid = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2312 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2313 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2314 | perms_valid = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2315 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2316 | os.remove(bfn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2317 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2318 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2319 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2320 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2321 | os.rename(fn, bfn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2322 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2323 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2324 | pass |
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 | # now write text to the file fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2327 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2328 | self.encoding = Utilities.writeEncodedFile(fn, txt, self.encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2329 | if createBackup and perms_valid: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2330 | os.chmod(fn, permissions) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2331 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2332 | 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
|
2333 | E5MessageBox.critical(self, self.trUtf8('Save File'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2334 | 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
|
2335 | 'Reason: {1}</p>') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2336 | .format(fn, str(why))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2337 | return False |
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 saveFile(self, saveas = False, path = None): |
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 save the text to a file. |
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 | @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
|
2344 | @param path directory to save the file in (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2345 | @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
|
2346 | the name of the saved file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2347 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2348 | if not saveas and not self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2349 | return (False, None) # do nothing if text wasn't changed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2350 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2351 | newName = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2352 | if saveas or self.fileName is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2353 | saveas = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2354 | 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
|
2355 | path = os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2356 | if path is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2357 | path = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2358 | 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
|
2359 | fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2360 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2361 | self.trUtf8("Save File"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2362 | path, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2363 | Lexers.getSaveFileFiltersList(True, True), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2364 | defaultFilter, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2365 | QFileDialog.Options(QFileDialog.DontConfirmOverwrite)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2366 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2367 | if fn: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2368 | ext = QFileInfo(fn).suffix() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2369 | if not ext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2370 | ex = selectedFilter.split("(*")[1].split(")")[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2371 | if ex: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2372 | fn += ex |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2373 | if QFileInfo(fn).exists(): |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2374 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2375 | self.trUtf8("Save File"), |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2376 | self.trUtf8("<p>The file <b>{0}</b> already exists." |
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2377 | " Overwrite it?</p>").format(fn), |
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2378 | type_ = E5MessageBox.Warning) |
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
2379 | if not res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2380 | return (False, None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2381 | fn = Utilities.toNativeSeparators(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2382 | newName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2383 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2384 | return (False, None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2385 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2386 | fn = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2387 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2388 | self.editorAboutToBeSaved.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2389 | if self.writeFile(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2390 | if saveas: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2391 | self.__clearBreakpoints(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2392 | self.fileName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2393 | self.setModified(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2394 | self.setReadOnly(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2395 | self.setWindowTitle(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2396 | 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
|
2397 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2398 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2399 | if saveas: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2400 | self.isResourcesFile = self.fileName.endswith(".qrc") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2401 | self.__initContextMenu() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2402 | self.editorRenamed.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2403 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2404 | if newName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2405 | 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
|
2406 | self.editorSaved.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2407 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2408 | self.extractTasks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2409 | return (True, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2410 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2411 | self.lastModified = QFileInfo(fn).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2412 | return (False, None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2413 | |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
2414 | def saveFileAs(self, path = None, toProject = False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2415 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2416 | 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
|
2417 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2418 | @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
|
2419 | @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
|
2420 | @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
|
2421 | the name of the saved file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2422 | """ |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
2423 | if toProject: |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
2424 | self.setEolModeByEolString(self.project.getEolString()) |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
2425 | self.convertEols(self.eolMode()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2426 | return self.saveFile(True, path) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2427 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2428 | def handleRenamed(self, fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2429 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2430 | Public slot to handle the editorRenamed signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2431 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2432 | @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
|
2433 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2434 | self.__clearBreakpoints(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2435 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2436 | self.fileName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2437 | self.setWindowTitle(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2438 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2439 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2440 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2441 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2442 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2443 | self.vm.setEditorName(self, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2444 | self.__updateReadOnly(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2445 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2446 | def fileRenamed(self, fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2447 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2448 | Public slot to handle the editorRenamed signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2449 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2450 | @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
|
2451 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2452 | self.handleRenamed(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2453 | if not self.inFileRenamed: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2454 | self.inFileRenamed = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2455 | self.editorRenamed.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2456 | self.inFileRenamed = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2457 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2458 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2459 | ## Utility methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2460 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2461 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2462 | def ensureVisible(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2463 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2464 | 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
|
2465 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2466 | @param line line number to make visible |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2467 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2468 | self.ensureLineVisible(line-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2469 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2470 | def ensureVisibleTop(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2471 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2472 | 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
|
2473 | of the editor. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2474 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2475 | @param line line number to make visible |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2476 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2477 | topLine = self.firstVisibleLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2478 | linesToScroll = line - topLine |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2479 | self.scrollVertical(linesToScroll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2480 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2481 | def __marginClicked(self, margin, line, modifiers): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2482 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2483 | Private slot to handle the marginClicked signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2484 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2485 | @param margin id of the clicked margin (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2486 | @param line line number of the click (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2487 | @param modifiers keyboard modifiers (Qt.KeyboardModifiers) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2488 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2489 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2490 | if margin == 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2491 | if modifiers & Qt.KeyboardModifiers(Qt.ShiftModifier): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2492 | if self.marginMenuActs["LMBbreakpoints"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2493 | self.toggleBookmark(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2494 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2495 | self.__toggleBreakpoint(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2496 | elif modifiers & Qt.KeyboardModifiers(Qt.ControlModifier): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2497 | if self.markersAtLine(line) & (1 << self.syntaxerror): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2498 | self.__showSyntaxError(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2499 | elif self.markersAtLine(line) & (1 << self.warning): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2500 | self.__showFlakesWarning(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2501 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2502 | if self.marginMenuActs["LMBbreakpoints"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2503 | self.__toggleBreakpoint(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2504 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2505 | self.toggleBookmark(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2506 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2507 | if margin == self.__bmMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2508 | self.toggleBookmark(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2509 | elif margin == self.__bpMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2510 | self.__toggleBreakpoint(line + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2511 | elif margin == self.__indicMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2512 | if self.markersAtLine(line) & (1 << self.syntaxerror): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2513 | self.__showSyntaxError(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2514 | elif self.markersAtLine(line) & (1 << self.warning): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2515 | self.__showFlakesWarning(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2516 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2517 | def handleMonospacedEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2518 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2519 | 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
|
2520 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2521 | if self.menuActs["MonospacedFont"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2522 | self.setMonospaced(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2523 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2524 | if self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2525 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2526 | self.lexer_.initProperties() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2527 | self.setMonospaced(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2528 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2529 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2530 | def getWordBoundaries(self, line, index, useWordChars = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2531 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2532 | 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
|
2533 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2534 | @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
|
2535 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2536 | @keyparam useWordChars flag indicating to use the wordCharacters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2537 | method (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2538 | @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
|
2539 | (integer, integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2540 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2541 | text = self.text(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2542 | if self.caseSensitive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2543 | cs = Qt.CaseSensitive |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2544 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2545 | cs = Qt.CaseInsensitive |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2546 | wc = self.wordCharacters() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2547 | if wc is None or not useWordChars: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2548 | regExp = QRegExp('[^\w_]', cs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2549 | else: |
448
a1f1b226ff4b
Fixed a few unicode related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
2550 | wc = re.sub('\w', "", wc) |
a1f1b226ff4b
Fixed a few unicode related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
2551 | 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
|
2552 | start = regExp.lastIndexIn(text, index) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2553 | end = regExp.indexIn(text, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2554 | if start == end + 1 and index > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2555 | # we are on a word boundary, try again |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2556 | start = regExp.lastIndexIn(text, index - 1) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2557 | if start == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2558 | start = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2559 | if end == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2560 | end = len(text) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2561 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2562 | return (start, end) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2563 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2564 | def getWord(self, line, index, direction = 0, useWordChars = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2565 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2566 | 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
|
2567 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2568 | @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
|
2569 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2570 | @param direction direction to look in (0 = whole word, 1 = left, 2 = right) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2571 | @keyparam useWordChars flag indicating to use the wordCharacters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2572 | method (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2573 | @return the word at that position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2574 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2575 | start, end = self.getWordBoundaries(line, index, useWordChars) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2576 | if direction == 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2577 | end = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2578 | elif direction == 2: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2579 | start = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2580 | if end > start: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2581 | text = self.text(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2582 | word = text[start:end] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2583 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2584 | word = '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2585 | return word |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2586 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2587 | def getWordLeft(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2588 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2589 | 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
|
2590 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2591 | @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
|
2592 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2593 | @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
|
2594 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2595 | return self.getWord(line, index, 1) |
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 | def getWordRight(self, line, index): |
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 | 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
|
2600 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2601 | @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
|
2602 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2603 | @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
|
2604 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2605 | return self.getWord(line, index, 2) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2606 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2607 | def getCurrentWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2608 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2609 | 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
|
2610 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2611 | @return the word at that current position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2612 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2613 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2614 | return self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2615 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2616 | def selectWord(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2617 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2618 | 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
|
2619 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2620 | @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
|
2621 | @param index position to look at (int) |
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 | start, end = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2624 | self.setSelection(line, start, line, end) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2625 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2626 | def selectCurrentWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2627 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2628 | Public method to select the current word. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2629 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2630 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2631 | self.selectWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2632 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2633 | def __getCharacter(self, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2634 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2635 | 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
|
2636 | in the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2637 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2638 | @param pos position to get character at (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2639 | @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
|
2640 | the next position (i.e. pos - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2641 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2642 | if pos <= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2643 | return "", pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2644 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2645 | pos = self.positionBefore(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2646 | ch = self.charAt(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2647 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2648 | # 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
|
2649 | if ch == '\n' or ch == '\r': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2650 | return "", pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2651 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2652 | return ch, pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2653 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2654 | def getSearchText(self, selectionOnly = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2655 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2656 | Public method to determine the selection or the current word for the next |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2657 | search operation. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2658 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2659 | @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
|
2660 | returned (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2661 | @return selection or current word (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2662 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2663 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2664 | text = self.selectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2665 | if '\r' in text or '\n' in text: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2666 | # 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
|
2667 | # unlikely to be the expression to search for |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2668 | return '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2669 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2670 | return text |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2671 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2672 | if not selectionOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2673 | # 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
|
2674 | return self.getCurrentWord() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2675 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2676 | return '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2677 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2678 | def setSearchIndicator(self, startPos, indicLength): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2679 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2680 | 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
|
2681 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2682 | @param startPos start position of the indicator (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2683 | @param indicLength length of the indicator (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2684 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2685 | self.setIndicatorRange(self.searchIndicator, startPos, indicLength) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2686 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2687 | def clearSearchIndicators(self): |
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 | Public method to clear all search indicators. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2690 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2691 | self.clearAllIndicators(self.searchIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2692 | self.__markedText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2693 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2694 | def __markOccurrences(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2695 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2696 | 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
|
2697 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2698 | word = self.getCurrentWord() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2699 | if not word: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2700 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2701 | return |
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 | if self.__markedText == word: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2704 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2705 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2706 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2707 | 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
|
2708 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2709 | tgtPos, tgtLen = self.getFoundTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2710 | self.setSearchIndicator(tgtPos, tgtLen) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2711 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2712 | self.__markedText = word |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2713 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2714 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2715 | ## Comment handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2716 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2717 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2718 | def commentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2719 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2720 | Public slot to comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2721 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2722 | 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
|
2723 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2724 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2725 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2726 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2727 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2728 | self.insertAt(self.lexer_.commentStr(), line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2729 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2730 | 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
|
2731 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2732 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2733 | def uncommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2734 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2735 | Public slot to uncomment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2736 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2737 | 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
|
2738 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2739 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2740 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2741 | line, index = self.getCursorPosition() |
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 | # 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
|
2744 | # by our comment...() slots |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2745 | if not self.text(line).strip().startswith(commentStr): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2746 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2747 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2748 | # now remove the comment string |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2749 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2750 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2751 | self.setSelection(line, 0, line, len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2752 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2753 | self.setSelection(line, self.indentation(line), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2754 | line, self.indentation(line) + len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2755 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2756 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2757 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2758 | def commentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2759 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2760 | Public slot to comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2761 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2762 | 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
|
2763 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2764 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2765 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2766 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2767 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2768 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2769 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2770 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2771 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2772 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2773 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2774 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2775 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2776 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2777 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2778 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2779 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2780 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2781 | self.insertAt(commentStr, line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2782 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2783 | self.insertAt(commentStr, line, self.indentation(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2784 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2785 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2786 | self.setSelection(lineFrom, 0, endLine + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2787 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2788 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2789 | def uncommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2790 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2791 | Public slot to uncomment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2792 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2793 | 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
|
2794 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2795 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2796 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2797 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2798 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2799 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2800 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2801 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2802 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2803 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2804 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2805 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2806 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2807 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2808 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2809 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2810 | for line in range(lineFrom, endLine+1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2811 | # 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
|
2812 | # by our comment...() slots |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2813 | if not self.text(line).strip().startswith(commentStr): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2814 | continue |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2815 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2816 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2817 | self.setSelection(line, 0, line, len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2818 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2819 | self.setSelection(line, self.indentation(line), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2820 | line, self.indentation(line) + len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2821 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2822 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2823 | # adjust selection start |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2824 | if line == lineFrom: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2825 | indexFrom -= len(commentStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2826 | if indexFrom < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2827 | indexFrom = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2828 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2829 | # adjust selection end |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2830 | if line == lineTo: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2831 | indexTo -= len(commentStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2832 | if indexTo < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2833 | indexTo = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2834 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2835 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2836 | self.setSelection(lineFrom, indexFrom, lineTo, indexTo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2837 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2838 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2839 | def commentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2840 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2841 | 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
|
2842 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2843 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2844 | self.commentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2845 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2846 | self.commentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2847 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2848 | def uncommentLineOrSelection(self): |
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 uncomment the current line or current selection. |
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 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2853 | self.uncommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2854 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2855 | self.uncommentLine() |
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 | def streamCommentLine(self): |
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 | Public slot to stream comment the current line. |
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 | 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
|
2862 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2863 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2864 | commentStr = self.lexer_.streamCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2865 | line, index = self.getCursorPosition() |
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.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2868 | self.insertAt(commentStr['end'], line, self.lineLength(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2869 | self.insertAt(commentStr['start'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2870 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2871 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2872 | def streamCommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2873 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2874 | Public slot to comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2875 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2876 | 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
|
2877 | return |
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 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2880 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2881 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2882 | commentStr = self.lexer_.streamCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2883 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2884 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2885 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2886 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2887 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2888 | endIndex = self.lineLength(endLine) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2889 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2890 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2891 | endIndex = indexTo |
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 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2894 | self.insertAt(commentStr['end'], endLine, endIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2895 | self.insertAt(commentStr['start'], lineFrom, indexFrom) |
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 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2898 | if indexTo > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2899 | indexTo += len(commentStr['end']) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2900 | if lineFrom == endLine: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2901 | indexTo += len(commentStr['start']) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2902 | self.setSelection(lineFrom, indexFrom, lineTo, indexTo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2903 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2904 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2905 | def streamCommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2906 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2907 | 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
|
2908 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2909 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2910 | self.streamCommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2911 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2912 | self.streamCommentLine() |
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 | def boxCommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2915 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2916 | Public slot to box comment the current line. |
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.lexer_ is None or not self.lexer_.canBoxComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2919 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2920 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2921 | commentStr = self.lexer_.boxCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2922 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2923 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2924 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2925 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2926 | self.insertAt(eol, line, self.lineLength(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2927 | self.insertAt(commentStr['end'], line + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2928 | self.insertAt(commentStr['middle'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2929 | self.insertAt(eol, line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2930 | self.insertAt(commentStr['start'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2931 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2932 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2933 | def boxCommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2934 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2935 | Public slot to box comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2936 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2937 | 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
|
2938 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2939 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2940 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2941 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2942 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2943 | commentStr = self.lexer_.boxCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2944 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2945 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2946 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2947 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2948 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2949 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2950 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2951 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2952 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2953 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2954 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2955 | self.insertAt(commentStr['middle'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2956 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2957 | # 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
|
2958 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2959 | self.insertAt(eol, endLine, self.lineLength(endLine)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2960 | self.insertAt(commentStr['end'], endLine + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2961 | self.insertAt(eol, lineFrom, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2962 | self.insertAt(commentStr['start'], lineFrom, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2963 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2964 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2965 | self.setSelection(lineFrom, 0, endLine + 3, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2966 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2967 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2968 | def boxCommentLineOrSelection(self): |
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 | 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
|
2971 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2972 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2973 | self.boxCommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2974 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2975 | self.boxCommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2976 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2977 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2978 | ## Indentation handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2979 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2980 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2981 | def __indentLine(self, indent = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2982 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2983 | Private method to indent or unindent the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2984 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2985 | @param indent flag indicating an indent operation (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2986 | <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
|
2987 | Otherwise the current line is unindented. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2988 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2989 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2990 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2991 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2992 | self.indent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2993 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2994 | self.unindent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2995 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2996 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2997 | self.setCursorPosition(line, index + self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2998 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2999 | self.setCursorPosition(line, index - self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3000 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3001 | def __indentSelection(self, indent = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3002 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3003 | Private method to indent or unindent the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3004 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3005 | @param indent flag indicating an indent operation (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3006 | <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
|
3007 | Otherwise the current line is unindented. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3008 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3009 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3010 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3011 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3012 | # get the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3013 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3014 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3015 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3016 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3017 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3018 | endLine = lineTo |
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 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3021 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3022 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3023 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3024 | self.indent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3025 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3026 | self.unindent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3027 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3028 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3029 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3030 | self.setSelection(lineFrom, indexFrom + self.indentationWidth(), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3031 | lineTo, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3032 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3033 | self.setSelection(lineFrom, indexFrom + self.indentationWidth(), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3034 | lineTo, indexTo + self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3035 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3036 | indexStart = indexFrom - self.indentationWidth() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3037 | if indexStart < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3038 | indexStart = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3039 | indexEnd = indexTo - self.indentationWidth() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3040 | if indexEnd < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3041 | indexEnd = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3042 | self.setSelection(lineFrom, indexStart, lineTo, indexEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3043 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3044 | def indentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3045 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3046 | 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
|
3047 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3048 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3049 | self.__indentSelection(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3050 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3051 | self.__indentLine(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3052 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3053 | def unindentLineOrSelection(self): |
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 | 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
|
3056 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3057 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3058 | self.__indentSelection(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3059 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3060 | self.__indentLine(False) |
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 smartIndentLineOrSelection(self): |
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 | Public slot to indent current line smartly. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3065 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3066 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3067 | if self.lexer_ and self.lexer_.hasSmartIndent(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3068 | self.lexer_.smartIndentSelection(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3069 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3070 | self.__indentSelection(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3071 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3072 | if self.lexer_ and self.lexer_.hasSmartIndent(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3073 | self.lexer_.smartIndentLine(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3074 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3075 | self.__indentLine(True) |
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 | def gotoLine(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3078 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3079 | 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
|
3080 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3081 | @param line line number to go to (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3082 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3083 | self.setCursorPosition(line - 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3084 | self.ensureVisible(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3085 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3086 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3087 | ## Setup methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3088 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3089 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3090 | def readSettings(self): |
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 | 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
|
3093 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3094 | # read the lexer settings and reinit the properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3095 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3096 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3097 | self.lexer_.initProperties() |
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 | # read the typing completer settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3100 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3101 | self.completer.readSettings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3102 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3103 | # set the margins layout |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3104 | if QSCINTILLA_VERSION() >= 0x020301: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3105 | self.__unifiedMargins = Preferences.getEditor("UnifiedMargins") |
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 | # set the line marker colours |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3108 | self.__setLineMarkerColours() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3109 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3110 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3111 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3112 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3113 | # set margin 0 and 2 configuration |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3114 | self.__setMarginsDisplay() |
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 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3117 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3118 | self.__setCallTips() |
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 | # set the autosave flags |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3121 | self.autosaveEnabled = Preferences.getEditor("AutosaveInterval") > 0 |
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 | if Preferences.getEditor("MiniContextMenu") != self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3124 | # regenerate context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3125 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3126 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3127 | # set checked context menu items |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3128 | self.menuActs["AutoCompletionEnable"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3129 | self.autoCompletionThreshold() != -1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3130 | self.menuActs["MonospacedFont"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3131 | self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3132 | self.menuActs["AutosaveEnable"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3133 | self.autosaveEnabled and not self.autosaveManuallyDisabled) |
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 | # regenerate the margins context menu(s) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3136 | self.__initContextMenuMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3137 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3138 | if Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3139 | self.__markOccurrencesTimer.setInterval( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3140 | Preferences.getEditor("MarkOccurrencesTimeout")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3141 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3142 | self.__markOccurrencesTimer.stop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3143 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3144 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3145 | def __setLineMarkerColours(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3146 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3147 | Private method to set the line marker colours. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3148 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3149 | self.setMarkerForegroundColor(Preferences.getEditorColour("CurrentMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3150 | self.currentline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3151 | self.setMarkerBackgroundColor(Preferences.getEditorColour("CurrentMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3152 | self.currentline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3153 | self.setMarkerForegroundColor(Preferences.getEditorColour("ErrorMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3154 | self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3155 | self.setMarkerBackgroundColor(Preferences.getEditorColour("ErrorMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3156 | self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3157 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3158 | def __setMarginsDisplay(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3159 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3160 | Private method to configure margins 0 and 2. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3161 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3162 | # set the settings for all margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3163 | self.setMarginsFont(Preferences.getEditorOtherFonts("MarginsFont")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3164 | self.setMarginsForegroundColor(Preferences.getEditorColour("MarginsForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3165 | self.setMarginsBackgroundColor(Preferences.getEditorColour("MarginsBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3166 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3167 | # reset standard margins settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3168 | for margin in range(5): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3169 | self.setMarginLineNumbers(margin, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3170 | self.setMarginMarkerMask(margin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3171 | self.setMarginWidth(margin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3172 | self.setMarginSensitivity(margin, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3173 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3174 | # set marker margin(s) settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3175 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3176 | margin1Mask = (1 << self.breakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3177 | (1 << self.cbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3178 | (1 << self.tbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3179 | (1 << self.tcbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3180 | (1 << self.dbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3181 | (1 << self.currentline) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3182 | (1 << self.errorline) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3183 | (1 << self.bookmark) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3184 | (1 << self.syntaxerror) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3185 | (1 << self.notcovered) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3186 | (1 << self.taskmarker) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3187 | (1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3188 | self.setMarginWidth(1, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3189 | self.setMarginSensitivity(1, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3190 | self.setMarginMarkerMask(1, margin1Mask) |
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 | self.__linenoMargin = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3193 | self.__foldMargin = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3194 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3195 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3196 | self.__bmMargin = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3197 | self.__linenoMargin = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3198 | self.__bpMargin = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3199 | self.__foldMargin = 3 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3200 | self.__indicMargin = 4 |
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 | marginBmMask = (1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3203 | self.setMarginWidth(self.__bmMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3204 | self.setMarginSensitivity(self.__bmMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3205 | self.setMarginMarkerMask(self.__bmMargin, marginBmMask) |
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 | marginBpMask = (1 << self.breakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3208 | (1 << self.cbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3209 | (1 << self.tbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3210 | (1 << self.tcbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3211 | (1 << self.dbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3212 | (1 << self.currentline) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3213 | (1 << self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3214 | self.setMarginWidth(self.__bpMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3215 | self.setMarginSensitivity(self.__bpMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3216 | self.setMarginMarkerMask(self.__bpMargin, marginBpMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3217 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3218 | marginIndicMask = (1 << self.syntaxerror) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3219 | (1 << self.notcovered) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3220 | (1 << self.taskmarker) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3221 | (1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3222 | self.setMarginWidth(self.__indicMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3223 | self.setMarginSensitivity(self.__indicMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3224 | self.setMarginMarkerMask(self.__indicMargin, marginIndicMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3225 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3226 | # set linenumber margin settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3227 | linenoMargin = Preferences.getEditor("LinenoMargin") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3228 | self.setMarginLineNumbers(self.__linenoMargin, linenoMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3229 | if linenoMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3230 | self.setMarginWidth(self.__linenoMargin, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3231 | ' ' + '8' * Preferences.getEditor("LinenoWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3232 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3233 | self.setMarginWidth(self.__linenoMargin, 0) |
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 | # set folding margin settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3236 | if Preferences.getEditor("FoldingMargin"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3237 | self.setMarginWidth(self.__foldMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3238 | folding = Preferences.getEditor("FoldingStyle") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3239 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3240 | folding = QsciScintilla.FoldStyle(folding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3241 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3242 | pass |
342
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3243 | 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
|
3244 | self.setFoldMarginColors( |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3245 | Preferences.getEditorColour("FoldmarginBackground"), |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3246 | Preferences.getEditorColour("FoldmarginBackground")) |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3247 | self.setFoldMarkersColors( |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3248 | Preferences.getEditorColour("FoldMarkersForeground"), |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
3249 | Preferences.getEditorColour("FoldMarkersBackground")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3250 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3251 | 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
|
3252 | self.setFolding(QsciScintilla.NoFoldStyle, self.__foldMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3253 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3254 | def __setTextDisplay(self): |
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 | Private method to configure the text display. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3257 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3258 | self.setTabWidth(Preferences.getEditor("TabWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3259 | self.setIndentationWidth(Preferences.getEditor("IndentWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3260 | if self.lexer_ and self.lexer_.alwaysKeepTabs(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3261 | self.setIndentationsUseTabs(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3262 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3263 | self.setIndentationsUseTabs(Preferences.getEditor("TabForIndentation")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3264 | self.setTabIndents(Preferences.getEditor("TabIndents")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3265 | self.setBackspaceUnindents(Preferences.getEditor("TabIndents")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3266 | self.setIndentationGuides(Preferences.getEditor("IndentationGuides")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3267 | if Preferences.getEditor("ShowWhitespace"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3268 | self.setWhitespaceVisibility(QsciScintilla.WsVisible) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3269 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3270 | self.setWhitespaceVisibility(QsciScintilla.WsInvisible) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3271 | self.setEolVisibility(Preferences.getEditor("ShowEOL")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3272 | self.setAutoIndent(Preferences.getEditor("AutoIndentation")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3273 | if Preferences.getEditor("BraceHighlighting"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3274 | self.setBraceMatching(QsciScintilla.SloppyBraceMatch) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3275 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3276 | self.setBraceMatching(QsciScintilla.NoBraceMatch) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3277 | self.setMatchedBraceForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3278 | Preferences.getEditorColour("MatchingBrace")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3279 | self.setMatchedBraceBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3280 | Preferences.getEditorColour("MatchingBraceBack")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3281 | self.setUnmatchedBraceForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3282 | Preferences.getEditorColour("NonmatchingBrace")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3283 | self.setUnmatchedBraceBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3284 | Preferences.getEditorColour("NonmatchingBraceBack")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3285 | if Preferences.getEditor("CustomSelectionColours"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3286 | self.setSelectionBackgroundColor(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3287 | Preferences.getEditorColour("SelectionBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3288 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3289 | self.setSelectionBackgroundColor(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3290 | QApplication.palette().color(QPalette.Highlight)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3291 | if Preferences.getEditor("ColourizeSelText"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3292 | self.resetSelectionForegroundColor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3293 | elif Preferences.getEditor("CustomSelectionColours"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3294 | self.setSelectionForegroundColor(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3295 | Preferences.getEditorColour("SelectionForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3296 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3297 | self.setSelectionForegroundColor(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3298 | QApplication.palette().color(QPalette.HighlightedText)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3299 | self.setSelectionToEol(Preferences.getEditor("ExtendSelectionToEol")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3300 | self.setCaretForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3301 | Preferences.getEditorColour("CaretForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3302 | self.setCaretLineBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3303 | Preferences.getEditorColour("CaretLineBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3304 | self.setCaretLineVisible(Preferences.getEditor("CaretLineVisible")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3305 | self.caretWidth = Preferences.getEditor("CaretWidth") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3306 | self.setCaretWidth(self.caretWidth) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3307 | self.useMonospaced = Preferences.getEditor("UseMonospacedFont") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3308 | self.setMonospaced(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3309 | edgeMode = Preferences.getEditor("EdgeMode") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3310 | edge = QsciScintilla.EdgeMode(edgeMode) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3311 | self.setEdgeMode(edge) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3312 | if edgeMode: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3313 | self.setEdgeColumn(Preferences.getEditor("EdgeColumn")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3314 | self.setEdgeColor(Preferences.getEditorColour("Edge")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3315 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3316 | if Preferences.getEditor("WrapLongLines"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3317 | self.setWrapMode(QsciScintilla.WrapWord) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3318 | self.setWrapVisualFlags(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3319 | QsciScintilla.WrapFlagByBorder, QsciScintilla.WrapFlagByBorder) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3320 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3321 | self.setWrapMode(QsciScintilla.WrapNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3322 | self.setWrapVisualFlags(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3323 | QsciScintilla.WrapFlagNone, QsciScintilla.WrapFlagNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3324 | |
230
2cde09c26384
Added code to configure the zoom factor a file is opened with.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
3325 | 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
|
3326 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3327 | self.searchIndicator = QsciScintilla.INDIC_CONTAINER |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3328 | self.indicatorDefine(self.searchIndicator, QsciScintilla.INDIC_BOX, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3329 | Preferences.getEditorColour("SearchMarkers")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3330 | if not Preferences.getEditor("SearchMarkersEnabled") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3331 | not Preferences.getEditor("QuickSearchMarkersEnabled") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3332 | not Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3333 | self.clearAllIndicators(self.searchIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3334 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3335 | self.spellingIndicator = QsciScintilla.INDIC_CONTAINER + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3336 | self.indicatorDefine(self.spellingIndicator, QsciScintilla.INDIC_SQUIGGLE, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3337 | Preferences.getEditorColour("SpellingMarkers")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3338 | self.__setSpelling() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3339 | |
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
|
3340 | 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
|
3341 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3342 | def __setEolMode(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3343 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3344 | 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
|
3345 | """ |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3346 | if self.fileName and \ |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3347 | self.project.isOpen() and \ |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3348 | self.project.isProjectFile(self.fileName): |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3349 | self.setEolModeByEolString(self.project.getEolString()) |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3350 | else: |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3351 | eolMode = Preferences.getEditor("EOLMode") |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3352 | eolMode = QsciScintilla.EolMode(eolMode) |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
3353 | self.setEolMode(eolMode) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3354 | self.__eolChanged() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3355 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3356 | def __setAutoCompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3357 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3358 | Private method to configure the autocompletion function. |
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 | if self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3361 | self.setAutoCompletionFillupsEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3362 | Preferences.getEditor("AutoCompletionFillups")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3363 | self.setAutoCompletionCaseSensitivity( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3364 | Preferences.getEditor("AutoCompletionCaseSensitivity")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3365 | self.setAutoCompletionReplaceWord( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3366 | Preferences.getEditor("AutoCompletionReplaceWord")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3367 | self.setAutoCompletionShowSingle( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3368 | Preferences.getEditor("AutoCompletionShowSingle")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3369 | autoCompletionSource = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3370 | if autoCompletionSource == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3371 | self.setAutoCompletionSource(QsciScintilla.AcsDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3372 | elif autoCompletionSource == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3373 | self.setAutoCompletionSource(QsciScintilla.AcsAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3374 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3375 | self.setAutoCompletionSource(QsciScintilla.AcsAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3376 | if Preferences.getEditor("AutoCompletionEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3377 | if self.__acHookFunction is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3378 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3379 | Preferences.getEditor("AutoCompletionThreshold")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3380 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3381 | self.setAutoCompletionThreshold(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3382 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3383 | self.setAutoCompletionThreshold(-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3384 | self.setAutoCompletionSource(QsciScintilla.AcsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3385 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3386 | def __setCallTips(self): |
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 | Private method to configure the calltips function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3389 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3390 | if Preferences.getEditor("CallTipsEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3391 | self.setCallTipsBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3392 | Preferences.getEditorColour("CallTipsBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3393 | self.setCallTipsVisible(Preferences.getEditor("CallTipsVisible")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3394 | calltipsStyle = Preferences.getEditor("CallTipsStyle") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3395 | if calltipsStyle == QsciScintilla.CallTipsNoContext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3396 | self.setCallTipsStyle(QsciScintilla.CallTipsNoContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3397 | elif calltipsStyle == QsciScintilla.CallTipsNoAutoCompletionContext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3398 | self.setCallTipsStyle(QsciScintilla.CallTipsNoAutoCompletionContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3399 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3400 | self.setCallTipsStyle(QsciScintilla.CallTipsContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3401 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3402 | self.setCallTipsStyle(QsciScintilla.CallTipsNone) |
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 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3405 | ## Autocompletion handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3408 | def canAutoCompleteFromAPIs(self): |
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 | Public method to check for API availablity. |
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 | @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
|
3413 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3414 | return self.acAPI |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3415 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3416 | def autoCompleteQScintilla(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3417 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3418 | 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
|
3419 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3420 | acs = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3421 | if acs == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3422 | self.autoCompleteFromDocument() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3423 | elif acs == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3424 | self.autoCompleteFromAPIs() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3425 | elif acs == QsciScintilla.AcsAll: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3426 | self.autoCompleteFromAll() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3427 | else: |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
3428 | E5MessageBox.information(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3429 | self.trUtf8("Autocompletion"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3430 | self.trUtf8("""Autocompletion is not available because""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3431 | """ there is no autocompletion source set.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3432 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3433 | def setAutoCompletionEnabled(self, enable): |
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 | Public method to enable/disable autocompletion. |
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 | @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
|
3438 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3439 | if enable: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3440 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3441 | Preferences.getEditor("AutoCompletionThreshold")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3442 | autoCompletionSource = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3443 | if autoCompletionSource == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3444 | self.setAutoCompletionSource(QsciScintilla.AcsDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3445 | elif autoCompletionSource == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3446 | self.setAutoCompletionSource(QsciScintilla.AcsAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3447 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3448 | self.setAutoCompletionSource(QsciScintilla.AcsAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3449 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3450 | self.setAutoCompletionThreshold(-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3451 | self.setAutoCompletionSource(QsciScintilla.AcsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3452 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3453 | def __toggleAutoCompletionEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3454 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3455 | 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
|
3456 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3457 | if self.menuActs["AutoCompletionEnable"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3458 | self.setAutoCompletionEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3459 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3460 | self.setAutoCompletionEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3461 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3462 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3463 | ## Support for autocompletion hook methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3464 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3465 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3466 | def __charAdded(self, charNumber): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3467 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3468 | 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
|
3469 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3470 | @param charNumber value of the character entered (integer) |
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 | if self.isListActive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3473 | char = chr(charNumber) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3474 | if self.__isStartChar(char): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3475 | self.cancelList() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3476 | self.autoComplete(auto = True, context = True) |
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 | elif char == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3479 | self.cancelList() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3480 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3481 | if self.callTipsStyle() != QsciScintilla.CallTipsNone and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3482 | 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
|
3483 | self.callTip() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3484 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3485 | if not self.isCallTipActive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3486 | char = chr(charNumber) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3487 | if self.__isStartChar(char): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3488 | self.autoComplete(auto = True, context = True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3489 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3490 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3491 | line, col = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3492 | txt = self.getWordLeft(line, col) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3493 | if len(txt) >= Preferences.getEditor("AutoCompletionThreshold"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3494 | self.autoComplete(auto = True, context = False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3495 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3496 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3497 | def __isStartChar(self, ch): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3498 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3499 | 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
|
3500 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3501 | @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
|
3502 | @return flag indicating the result (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3503 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3504 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3505 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3506 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3507 | wseps = self.lexer_.autoCompletionWordSeparators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3508 | for wsep in wseps: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3509 | if wsep.endswith(ch): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3510 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3511 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3512 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3513 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3514 | def setAutoCompletionHook(self, func): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3515 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3516 | Public method to set an autocompletion hook. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3517 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3518 | @param func Function to be set to handle autocompletion. func |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3519 | should be a function taking a reference to the editor and |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3520 | a boolean indicating to complete a context. |
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 | if self.autoCompletionThreshold() > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3523 | self.setAutoCompletionThreshold(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3524 | self.__acHookFunction = func |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3525 | self.SCN_CHARADDED.connect(self.__charAdded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3526 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3527 | def unsetAutoCompletionHook(self): |
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 | 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
|
3530 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3531 | self.SCN_CHARADDED.disconnect(self.__charAdded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3532 | self.__acHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3533 | if self.autoCompletionThreshold() == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3534 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3535 | Preferences.getEditor("AutoCompletionThreshold")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3536 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3537 | def autoCompletionHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3538 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3539 | Public method to get the autocompletion hook function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3540 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3541 | @return function set by setAutoCompletionHook() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3542 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3543 | return self.__acHookFunction |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3544 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3545 | def autoComplete(self, auto = False, context = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3546 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3547 | Public method to start autocompletion. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3548 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3549 | @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
|
3550 | @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
|
3551 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3552 | if auto and self.autoCompletionThreshold() == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3553 | # autocompletion is disabled |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3554 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3555 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3556 | if self.__acHookFunction is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3557 | self.__acHookFunction(self, context) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3558 | elif not auto: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3559 | self.autoCompleteQScintilla() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3560 | elif self.autoCompletionSource() != QsciScintilla.AcsNone: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3561 | self.autoCompleteQScintilla() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3562 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3563 | def callTip(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3564 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3565 | Public method to show calltips. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3566 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3567 | if self.__ctHookFunction is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3568 | self.__callTip() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3569 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3570 | QsciScintillaCompat.callTip(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3571 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3572 | def __callTip(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3573 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3574 | 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
|
3575 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3576 | pos = self.currentPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3577 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3578 | # 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
|
3579 | # to highlight |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3580 | commas = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3581 | found = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3582 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3583 | while ch: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3584 | if ch == ',': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3585 | commas += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3586 | elif ch == ')': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3587 | depth = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3588 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3589 | # 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
|
3590 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3591 | while ch: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3592 | if ch == ')': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3593 | depth += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3594 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3595 | depth -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3596 | if depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3597 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3598 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3599 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3600 | found = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3601 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3602 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3603 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3604 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3605 | self.SendScintilla(QsciScintilla.SCI_CALLTIPCANCEL) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3606 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3607 | if not found: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3608 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3609 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3610 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3611 | callTips = self.__ctHookFunction(self, pos, commas) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3612 | except TypeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3613 | # for backward compatibility |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3614 | callTips = self.__ctHookFunction(self, pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3615 | if len(callTips) == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3616 | if Preferences.getEditor("CallTipsScintillaOnFail"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3617 | # try QScintilla calltips |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3618 | QsciScintillaCompat.callTip(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3619 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3620 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3621 | ctshift = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3622 | for ct in callTips: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3623 | shift = ct.index("(") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3624 | if ctshift < shift: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3625 | ctshift = shift |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3626 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3627 | cv = self.callTipsVisible() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3628 | if cv > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3629 | # 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
|
3630 | ct = self._encodeString("\n".join(callTips[:cv])) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3631 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3632 | # 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
|
3633 | ct = self._encodeString("\n".join(callTips)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3634 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3635 | self.SendScintilla(QsciScintilla.SCI_CALLTIPSHOW, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3636 | 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
|
3637 | if b'\n' in ct: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3638 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3639 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3640 | # Highlight the current argument |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3641 | 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
|
3642 | astart = ct.find(b'(') |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3643 | else: |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
3644 | astart = ct.find(b',') |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3645 | commas -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3646 | 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
|
3647 | astart = ct.find(b',', astart + 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3648 | commas -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3649 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3650 | if astart == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3651 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3652 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3653 | depth = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3654 | 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
|
3655 | ch = ct[aend:aend + 1] |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3656 | |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
3657 | if ch == b',' and depth == 0: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3658 | break |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
3659 | elif ch == b'(': |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3660 | depth += 1 |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
3661 | elif ch == b')': |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3662 | if depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3663 | break |
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 | depth -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3666 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3667 | 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
|
3668 | 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
|
3669 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3670 | def __adjustedCallTipPosition(self, ctshift, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3671 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3672 | 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
|
3673 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3674 | @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
|
3675 | @param pos position into the text (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3676 | @return new position for the calltip (integer) |
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 | ct = pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3679 | if ctshift: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3680 | ctmin = self.SendScintilla(QsciScintilla.SCI_POSITIONFROMLINE, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3681 | self.SendScintilla(QsciScintilla.SCI_LINEFROMPOSITION, ct)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3682 | if ct - ctshift < ctmin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3683 | ct = ctmin |
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 | ct = ct - ctshift |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3686 | return ct |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3687 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3688 | def setCallTipHook(self, func): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3689 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3690 | Public method to set a calltip hook. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3691 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3692 | @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
|
3693 | 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
|
3694 | 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
|
3695 | 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
|
3696 | calltips as a list of strings. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3697 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3698 | self.__ctHookFunction = func |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3699 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3700 | def unsetCallTipHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3701 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3702 | Public method to unset a calltip hook. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3703 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3704 | self.__ctHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3705 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3706 | def callTipHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3707 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3708 | Public method to get the calltip hook function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3709 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3710 | @return function set by setCallTipHook() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3711 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3712 | return self.__ctHookFunction |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3713 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3714 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3715 | ## Methods needed by the context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3716 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3717 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3718 | def __marginNumber(self, xPos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3719 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3720 | 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
|
3721 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3722 | @param xPos x position (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3723 | @return margin number (integer, -1 for no margin) |
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 | width = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3726 | for margin in range(5): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3727 | width += self.marginWidth(margin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3728 | if xPos <= width: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3729 | return margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3730 | return -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3731 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3732 | def contextMenuEvent(self, evt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3733 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3734 | Private method implementing the context menu event. |
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 | @param evt the context menu event (QContextMenuEvent) |
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 | evt.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3739 | if self.__marginNumber(evt.x()) == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3740 | self.spellingMenuPos = self.positionFromPoint(evt.pos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3741 | if self.spellingMenuPos >= 0 and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3742 | self.spell is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3743 | self.hasIndicator(self.spellingIndicator, self.spellingMenuPos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3744 | self.spellingMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3745 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3746 | self.menu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3747 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3748 | self.line = self.lineAt(evt.pos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3749 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3750 | self.marginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3751 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3752 | 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
|
3753 | self.bmMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3754 | elif self.__marginNumber(evt.x()) == self.__bpMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3755 | self.bpMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3756 | elif self.__marginNumber(evt.x()) == self.__indicMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3757 | self.indicMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3758 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3759 | def __showContextMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3760 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3761 | 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
|
3762 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3763 | self.menuActs["Save"].setEnabled(self.isModified()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3764 | self.menuActs["Undo"].setEnabled(self.isUndoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3765 | self.menuActs["Redo"].setEnabled(self.isRedoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3766 | self.menuActs["Revert"].setEnabled(self.isModified()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3767 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3768 | self.menuActs["Cut"].setEnabled(self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3769 | self.menuActs["Copy"].setEnabled(self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3770 | if not self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3771 | if self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3772 | (self.isPyFile() or self.isPy3File()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3773 | self.menuActs["Show"].setEnabled(True) |
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 | self.menuActs["Show"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3776 | if self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3777 | (self.isPyFile() or self.isPy3File() or self.isRubyFile()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3778 | self.menuActs["Diagrams"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3779 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3780 | self.menuActs["Diagrams"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3781 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3782 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3783 | self.menuActs["Comment"].setEnabled(self.lexer_.canBlockComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3784 | self.menuActs["Uncomment"].setEnabled(self.lexer_.canBlockComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3785 | self.menuActs["StreamComment"].setEnabled(self.lexer_.canStreamComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3786 | self.menuActs["BoxComment"].setEnabled(self.lexer_.canBoxComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3787 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3788 | self.menuActs["Comment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3789 | self.menuActs["Uncomment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3790 | self.menuActs["StreamComment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3791 | self.menuActs["BoxComment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3792 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3793 | self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3794 | self.menuActs["TypingAidsEnabled"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3795 | 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
|
3796 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3797 | spellingAvailable = SpellChecker.isAvailable() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3798 | self.menuActs["SpellCheck"].setEnabled(spellingAvailable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3799 | self.menuActs["SpellCheckSelection"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3800 | spellingAvailable and self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3801 | self.menuActs["SpellCheckRemove"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3802 | spellingAvailable and self.spellingMenuPos >= 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3803 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3804 | self.showMenu.emit("Main", self.menu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3805 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3806 | def __showContextMenuAutocompletion(self): |
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 | 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
|
3809 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3810 | self.menuActs["acDynamic"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3811 | self.acAPI or self.__acHookFunction is not None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3812 | self.menuActs["acAPI"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3813 | self.menuActs["acAPIDocument"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3814 | self.menuActs["calltip"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3815 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3816 | self.showMenu.emit("Autocompletion", self.autocompletionMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3817 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3818 | def __showContextMenuShow(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3819 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3820 | 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
|
3821 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3822 | prEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3823 | coEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3824 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3825 | # 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
|
3826 | 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
|
3827 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3828 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3829 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3830 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3831 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3832 | prEnable = prEnable or \ |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
3833 | 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
|
3834 | os.path.isfile("{0}.profile".format(tbasename)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3835 | coEnable = coEnable or \ |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
3836 | os.path.isfile("{0}.coverage".format(basename)) or \ |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
3837 | os.path.isfile("{0}.coverage".format(tbasename)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3838 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3839 | # now check ourself |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3840 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3841 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3842 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3843 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3844 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3845 | prEnable = prEnable or \ |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
3846 | 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
|
3847 | os.path.isfile("{0}.profile".format(tbasename)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3848 | coEnable = coEnable or \ |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
3849 | os.path.isfile("{0}.coverage".format(basename)) or \ |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
3850 | os.path.isfile("{0}.coverage".format(tbasename)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3851 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3852 | # now check for syntax errors |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3853 | if self.hasSyntaxErrors(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3854 | coEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3855 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3856 | self.profileMenuAct.setEnabled(prEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3857 | self.coverageMenuAct.setEnabled(coEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3858 | self.coverageShowAnnotationMenuAct.setEnabled(\ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3859 | coEnable and not self.__coverageMarkersShown) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3860 | self.coverageHideAnnotationMenuAct.setEnabled(\ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3861 | self.__coverageMarkersShown) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3862 | |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3863 | self.showMenu.emit("Show", self.menuShow, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3864 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3865 | def __showContextMenuGraphics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3866 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3867 | 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
|
3868 | """ |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
3869 | 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
|
3870 | self.applicationDiagramMenuAct.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3871 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3872 | self.applicationDiagramMenuAct.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3873 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3874 | self.showMenu.emit("Graphics", self.graphicsMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3875 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3876 | def __showContextMenuMargin(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3877 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3878 | 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
|
3879 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3880 | if self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3881 | (self.isPyFile() or self.isPy3File() or self.isRubyFile()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3882 | self.marginMenuActs["Breakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3883 | self.marginMenuActs["TempBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3884 | if self.markersAtLine(self.line) & self.breakpointMask: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3885 | self.marginMenuActs["EditBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3886 | self.marginMenuActs["EnableBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3887 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3888 | self.marginMenuActs["EditBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3889 | self.marginMenuActs["EnableBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3890 | if self.markersAtLine(self.line) & (1 << self.dbreakpoint): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3891 | self.marginMenuActs["EnableBreakpoint"].setText(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3892 | self.trUtf8('Enable breakpoint')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3893 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3894 | self.marginMenuActs["EnableBreakpoint"].setText(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3895 | self.trUtf8('Disable breakpoint')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3896 | if self.breaks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3897 | self.marginMenuActs["NextBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3898 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3899 | self.marginMenuActs["ClearBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3900 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3901 | self.marginMenuActs["NextBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3902 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3903 | self.marginMenuActs["ClearBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3904 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3905 | self.marginMenuActs["Breakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3906 | self.marginMenuActs["TempBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3907 | self.marginMenuActs["EditBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3908 | self.marginMenuActs["EnableBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3909 | self.marginMenuActs["NextBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3910 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3911 | self.marginMenuActs["ClearBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3912 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3913 | if self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3914 | self.marginMenuActs["NextBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3915 | self.marginMenuActs["PreviousBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3916 | self.marginMenuActs["ClearBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3917 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3918 | self.marginMenuActs["NextBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3919 | self.marginMenuActs["PreviousBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3920 | self.marginMenuActs["ClearBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3921 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3922 | if len(self.syntaxerrors): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3923 | self.marginMenuActs["GotoSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3924 | self.marginMenuActs["ClearSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3925 | if self.markersAtLine(self.line) & (1 << self.syntaxerror): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3926 | self.marginMenuActs["ShowSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3927 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3928 | self.marginMenuActs["ShowSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3929 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3930 | self.marginMenuActs["GotoSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3931 | self.marginMenuActs["ClearSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3932 | self.marginMenuActs["ShowSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3933 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3934 | if len(self.warnings): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3935 | self.marginMenuActs["NextWarningMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3936 | self.marginMenuActs["PreviousWarningMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3937 | self.marginMenuActs["ClearWarnings"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3938 | if self.markersAtLine(self.line) & (1 << self.warning): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3939 | self.marginMenuActs["ShowWarning"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3940 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3941 | self.marginMenuActs["ShowWarning"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3942 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3943 | self.marginMenuActs["NextWarningMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3944 | self.marginMenuActs["PreviousWarningMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3945 | self.marginMenuActs["ClearWarnings"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3946 | self.marginMenuActs["ShowWarning"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3947 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3948 | if self.notcoveredMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3949 | self.marginMenuActs["NextCoverageMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3950 | self.marginMenuActs["PreviousCoverageMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3951 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3952 | self.marginMenuActs["NextCoverageMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3953 | self.marginMenuActs["PreviousCoverageMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3954 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3955 | if self.__hasTaskMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3956 | self.marginMenuActs["PreviousTaskMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3957 | self.marginMenuActs["NextTaskMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3958 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3959 | self.marginMenuActs["PreviousTaskMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3960 | self.marginMenuActs["NextTaskMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3961 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3962 | self.showMenu.emit("Margin", self.sender(), self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3963 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3964 | def __showContextMenuChecks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3965 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3966 | 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
|
3967 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3968 | self.showMenu.emit("Checks", self.checksMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3969 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3970 | def __contextSave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3971 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3972 | Private slot handling the save context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3973 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3974 | ok, newName = self.saveFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3975 | if ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3976 | self.vm.setEditorName(self, newName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3977 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3978 | def __contextSaveAs(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3979 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3980 | 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
|
3981 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3982 | ok, newName = self.saveFileAs() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3983 | if ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3984 | self.vm.setEditorName(self, newName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3985 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3986 | def __contextClose(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3987 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3988 | Private slot handling the close context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3989 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3990 | self.vm.closeEditor(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3991 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3992 | def __newView(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3993 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3994 | 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
|
3995 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3996 | self.vm.newEditorView(self.fileName, self, self.filetype) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3997 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3998 | def __newViewNewSplit(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3999 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4000 | 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
|
4001 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4002 | self.vm.addSplit() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4003 | self.vm.newEditorView(self.fileName, self, self.filetype) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4004 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4005 | def __selectAll(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4006 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4007 | 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
|
4008 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4009 | self.selectAll(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4010 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4011 | def __deselectAll(self): |
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 | 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
|
4014 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4015 | self.selectAll(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4016 | |
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
|
4017 | 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
|
4018 | """ |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4019 | 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
|
4020 | """ |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4021 | 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
|
4022 | 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
|
4023 | 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
|
4024 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4025 | 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
|
4026 | 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
|
4027 | 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
|
4028 | 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
|
4029 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4030 | # 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
|
4031 | 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
|
4032 | 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
|
4033 | 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
|
4034 | 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
|
4035 | 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
|
4036 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4037 | # 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
|
4038 | 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
|
4039 | 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
|
4040 | 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
|
4041 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
4042 | 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
|
4043 | 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
|
4044 | 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
|
4045 | 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
|
4046 | 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
|
4047 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4048 | def shortenEmptyLines(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4049 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4050 | 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
|
4051 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4052 | searchRE = r"^[ \t]+$" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4053 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4054 | 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
|
4055 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4056 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4057 | self.replaceTarget("") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4058 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4059 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4060 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4061 | def __autosaveEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4062 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4063 | 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
|
4064 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4065 | if self.menuActs["AutosaveEnable"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4066 | self.autosaveManuallyDisabled = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4067 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4068 | self.autosaveManuallyDisabled = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4069 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4070 | def shouldAutosave(self): |
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 | Public slot to check the autosave flags. |
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 | @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
|
4075 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4076 | return self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4077 | not self.autosaveManuallyDisabled and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4078 | not self.isReadOnly() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4079 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4080 | def __autoSyntaxCheck(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4081 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4082 | 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
|
4083 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4084 | if Preferences.getEditor("AutoCheckSyntax"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4085 | self.clearSyntaxError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4086 | self.clearFlakesWarnings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4087 | if self.isPy3File(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4088 | syntaxError, _fn, errorline, _code, _error = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4089 | Utilities.compile(self.fileName, self.text()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4090 | if syntaxError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4091 | self.toggleSyntaxError(int(errorline), True, _error) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4092 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4093 | if Preferences.getFlakes("IncludeInSyntaxCheck"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4094 | ignoreStarImportWarnings = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4095 | 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
|
4096 | try: |
206
e24ba21c6d3a
Corrected an issue with Py3Flakes integration occurring on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
163
diff
changeset
|
4097 | txt = self.text().replace("\r\n", "\n").replace("\r", "\n") |
e24ba21c6d3a
Corrected an issue with Py3Flakes integration occurring on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
163
diff
changeset
|
4098 | warnings = Checker(txt, self.fileName) |
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
|
4099 | warnings.messages.sort(key = lambda a: a.lineno) |
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
|
4100 | 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
|
4101 | 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
|
4102 | 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
|
4103 | 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
|
4104 | |
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
|
4105 | _fn, lineno, message = warning.getMessageData() |
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
|
4106 | self.toggleFlakesWarning(lineno, True, message) |
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
|
4107 | 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
|
4108 | 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
|
4109 | 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
|
4110 | 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
|
4111 | 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
|
4112 | self.toggleSyntaxError(err.lineno, True, msg) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4113 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4114 | def __showCodeMetrics(self): |
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 | 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
|
4117 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4118 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4119 | return |
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 | self.codemetrics = CodeMetricsDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4122 | self.codemetrics.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4123 | self.codemetrics.start(self.fileName) |
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 | def __getCodeCoverageFile(self): |
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 | 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
|
4128 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4129 | @return filename of the coverage file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4130 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4131 | files = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4132 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4133 | # 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
|
4134 | # a project coverage file |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4135 | 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
|
4136 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4137 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4138 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4139 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4140 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4141 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4142 | f = "{0}.coverage".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4143 | tf = "{0}.coverage".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4144 | if os.path.isfile(f): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4145 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4146 | if os.path.isfile(tf): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4147 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4148 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4149 | # 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
|
4150 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4151 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4152 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4153 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4154 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4155 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4156 | f = "{0}.coverage".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4157 | tf = "{0}.coverage".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4158 | 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
|
4159 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4160 | 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
|
4161 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4162 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4163 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4164 | if len(files) > 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4165 | fn, ok = QInputDialog.getItem(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4166 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4167 | self.trUtf8("Code Coverage"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4168 | self.trUtf8("Please select a coverage file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4169 | files, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4170 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4171 | if not ok: |
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 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4174 | fn = files[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4175 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4176 | fn = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4177 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4178 | return fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4179 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4180 | def __showCodeCoverage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4181 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4182 | 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
|
4183 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4184 | fn = self.__getCodeCoverageFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4185 | if fn: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4186 | self.codecoverage = PyCoverageDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4187 | self.codecoverage.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4188 | self.codecoverage.start(fn, self.fileName) |
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 __codeCoverageShowAnnotations(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 handle the show code coverage annotations context menu action. |
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 | fn = self.__getCodeCoverageFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4195 | if fn: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4196 | cover = coverage(data_file = fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4197 | cover.use_cache(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4198 | cover.load() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4199 | missing = cover.analysis2(self.fileName)[3] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4200 | if missing: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4201 | for line in missing: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4202 | handle = self.markerAdd(line - 1, self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4203 | 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
|
4204 | self.coverageMarkersShown.emit(True) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4205 | self.__coverageMarkersShown = True |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4206 | else: |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
4207 | E5MessageBox.information(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4208 | self.trUtf8("Show Code Coverage Annotations"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4209 | self.trUtf8("""All lines have been covered.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4210 | else: |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
4211 | E5MessageBox.warning(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4212 | self.trUtf8("Show Code Coverage Annotations"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4213 | self.trUtf8("""There is no coverage file available.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4214 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4215 | def __codeCoverageHideAnnotations(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4216 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4217 | 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
|
4218 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4219 | for handle in self.notcoveredMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4220 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4221 | self.notcoveredMarkers = [] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4222 | self.coverageMarkersShown.emit(False) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4223 | self.__coverageMarkersShown = False |
92
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 | def hasCoverageMarkers(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4226 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4227 | 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
|
4228 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4229 | return len(self.notcoveredMarkers) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4230 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4231 | def nextUncovered(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4232 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4233 | 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
|
4234 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4235 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4236 | if line == self.lines()-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4237 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4238 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4239 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4240 | ucline = self.markerFindNext(line, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4241 | if ucline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4242 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4243 | ucline = self.markerFindNext(0, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4244 | if ucline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4245 | self.setCursorPosition(ucline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4246 | self.ensureLineVisible(ucline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4247 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4248 | def previousUncovered(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4249 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4250 | 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
|
4251 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4252 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4253 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4254 | line = self.lines()-1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4255 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4256 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4257 | ucline = self.markerFindPrevious(line, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4258 | if ucline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4259 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4260 | 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
|
4261 | if ucline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4262 | self.setCursorPosition(ucline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4263 | self.ensureLineVisible(ucline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4264 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4265 | def __showProfileData(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4266 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4267 | 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
|
4268 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4269 | files = [] |
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 | # 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
|
4272 | # a project profile file |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4273 | 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
|
4274 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4275 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4276 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4277 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4278 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4279 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4280 | f = "{0}.profile".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4281 | tf = "{0}.profile".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4282 | if os.path.isfile(f): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4283 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4284 | if os.path.isfile(tf): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4285 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4286 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4287 | # 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
|
4288 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4289 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4290 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4291 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4292 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4293 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4294 | f = "{0}.profile".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
4295 | tf = "{0}.profile".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4296 | 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
|
4297 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4298 | 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
|
4299 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4300 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4301 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4302 | if len(files) > 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4303 | fn, ok = QInputDialog.getItem(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4304 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4305 | self.trUtf8("Profile Data"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4306 | self.trUtf8("Please select a profile file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4307 | files, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4308 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4309 | if not ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4310 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4311 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4312 | fn = files[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4313 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4314 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4315 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4316 | self.profiledata = PyProfileDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4317 | self.profiledata.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4318 | self.profiledata.start(fn, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4319 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4320 | def __lmBbookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4321 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4322 | 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
|
4323 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4324 | self.marginMenuActs["LMBbookmarks"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4325 | self.marginMenuActs["LMBbreakpoints"].setChecked(False) |
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 __lmBbreakpoints(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 | 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
|
4330 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4331 | self.marginMenuActs["LMBbookmarks"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4332 | self.marginMenuActs["LMBbreakpoints"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4333 | |
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 | ## Syntax error handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4338 | def toggleSyntaxError(self, line, error, msg = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4339 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4340 | Public method to toggle a syntax error indicator. |
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 | @param line line number of the syntax error |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4343 | @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
|
4344 | set or deleted (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4345 | @param msg error message (string) |
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 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4348 | line = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4349 | # 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
|
4350 | if error: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4351 | # set a new syntax error marker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4352 | markers = self.markersAtLine(line - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4353 | if not (markers & (1 << self.syntaxerror)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4354 | handle = self.markerAdd(line - 1, self.syntaxerror) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4355 | self.syntaxerrors[handle] = msg |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4356 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4357 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4358 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4359 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4360 | del self.syntaxerrors[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4361 | self.markerDeleteHandle(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4362 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4363 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4364 | def getSyntaxErrors(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4365 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4366 | Public method to retrieve the syntax error markers. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4367 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4368 | @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
|
4369 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4370 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4371 | selist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4372 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4373 | selist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4374 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4375 | selist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4376 | return selist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4377 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4378 | def hasSyntaxErrors(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4379 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4380 | 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
|
4381 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4382 | @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
|
4383 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4384 | return len(self.syntaxerrors) > 0 |
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 gotoSyntaxError(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 | 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
|
4389 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4390 | seline = self.markerFindNext(0, 1 << self.syntaxerror) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4391 | if seline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4392 | self.setCursorPosition(seline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4393 | self.ensureLineVisible(seline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4394 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4395 | def clearSyntaxError(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4396 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4397 | 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
|
4398 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4399 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4400 | line = self.markerLine(handle) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4401 | self.toggleSyntaxError(line, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4402 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4403 | def __showSyntaxError(self, line = -1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4404 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4405 | Private slot to handle the 'Show syntax error message' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4406 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4407 | @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
|
4408 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4409 | if line == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4410 | line = self.line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4411 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4412 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4413 | if self.markerLine(handle) == line: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
4414 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4415 | self.trUtf8("Syntax Error"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4416 | self.syntaxerrors[handle]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4417 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4418 | else: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
4419 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4420 | self.trUtf8("Syntax Error"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4421 | self.trUtf8("No syntax error message available.")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4422 | |
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 | ## Flakes warning handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4425 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4426 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4427 | def toggleFlakesWarning(self, line, warning, msg = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4428 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4429 | Public method to toggle a flakes warning indicator. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4430 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4431 | @param line line number of the flakes warning |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4432 | @param erwarningror flag indicating if the warning marker should be |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4433 | set or deleted (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4434 | @param msg warning message (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4435 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4436 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4437 | line = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4438 | # 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
|
4439 | if warning: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4440 | # set/ammend a new warning marker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4441 | markers = self.markersAtLine(line - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4442 | if not (markers & (1 << self.warning)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4443 | handle = self.markerAdd(line - 1, self.warning) |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4444 | 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
|
4445 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4446 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4447 | for handle in list(self.warnings.keys()): |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4448 | if self.markerLine(handle) == line - 1 and \ |
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4449 | msg not in self.warnings[handle]: |
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4450 | self.warnings[handle].append(msg) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4451 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4452 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4453 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4454 | del self.warnings[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4455 | self.markerDeleteHandle(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4456 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4457 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4458 | def getFlakesWarnings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4459 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4460 | Public method to retrieve the flakes warning markers. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4461 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4462 | @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
|
4463 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4464 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4465 | fwlist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4466 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4467 | fwlist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4468 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4469 | fwlist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4470 | return fwlist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4471 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4472 | def hasFlakesWarnings(self): |
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 | 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
|
4475 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4476 | @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
|
4477 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4478 | return len(self.warnings) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4479 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4480 | def nextFlakesWarning(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4481 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4482 | 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
|
4483 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4484 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4485 | if line == self.lines() - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4486 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4487 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4488 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4489 | fwline = self.markerFindNext(line, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4490 | if fwline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4491 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4492 | fwline = self.markerFindNext(0, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4493 | if fwline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4494 | self.setCursorPosition(fwline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4495 | self.ensureLineVisible(fwline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4496 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4497 | def previousFlakesWarning(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4498 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4499 | 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
|
4500 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4501 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4502 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4503 | line = self.lines() - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4504 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4505 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4506 | fwline = self.markerFindPrevious(line, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4507 | if fwline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4508 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4509 | 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
|
4510 | if fwline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4511 | self.setCursorPosition(fwline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4512 | self.ensureLineVisible(fwline) |
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 | def clearFlakesWarnings(self): |
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 | 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
|
4517 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4518 | for handle in self.warnings: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4519 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4520 | self.warnings = {} |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4521 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4522 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4523 | def __showFlakesWarning(self, line = -1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4524 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4525 | 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
|
4526 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4527 | @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
|
4528 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4529 | if line == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4530 | line = self.line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4531 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4532 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4533 | if self.markerLine(handle) == line: |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
4534 | E5MessageBox.warning(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4535 | self.trUtf8("py3flakes Warning"), |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4536 | '\n'.join(self.warnings[handle])) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4537 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4538 | else: |
539
87f9bce38a44
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
4539 | E5MessageBox.warning(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4540 | self.trUtf8("py3flakes Warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4541 | self.trUtf8("No py3flakes warning message available.")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4542 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4543 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4544 | ## Macro handling methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4545 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4546 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4547 | def __getMacroName(self): |
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 | 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
|
4550 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4551 | @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
|
4552 | canceled the operation. (string, boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4553 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4554 | qs = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4555 | for s in list(self.macros.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4556 | qs.append(s) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4557 | qs.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4558 | return QInputDialog.getItem(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4559 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4560 | self.trUtf8("Macro Name"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4561 | self.trUtf8("Select a macro name:"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4562 | qs, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4563 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4564 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4565 | def macroRun(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4566 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4567 | Public method to execute a macro. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4568 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4569 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4570 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4571 | self.macros[name].play() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4572 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4573 | def macroDelete(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4574 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4575 | Public method to delete a macro. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4576 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4577 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4578 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4579 | del self.macros[name] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4580 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4581 | def macroLoad(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4582 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4583 | 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
|
4584 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4585 | configDir = Utilities.getConfigDir() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4586 | fname = QFileDialog.getOpenFileName( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4587 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4588 | self.trUtf8("Load macro file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4589 | configDir, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4590 | self.trUtf8("Macro files (*.macro)")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4591 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4592 | if not fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4593 | return # user aborted |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4594 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4595 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4596 | f = open(fname, "r", encoding = "utf-8") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4597 | lines = f.readlines() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4598 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4599 | except IOError: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
4600 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4601 | self.trUtf8("Error loading macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4602 | 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
|
4603 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4604 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4605 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4606 | if len(lines) != 2: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
4607 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4608 | self.trUtf8("Error loading macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4609 | 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
|
4610 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4611 | return |
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 | macro = QsciMacro(lines[1], self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4614 | self.macros[lines[0].strip()] = macro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4615 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4616 | def macroSave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4617 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4618 | 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
|
4619 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4620 | configDir = Utilities.getConfigDir() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4621 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4622 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4623 | if not ok or not name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4624 | return # user abort |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4625 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4626 | fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4627 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4628 | self.trUtf8("Save macro file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4629 | configDir, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4630 | self.trUtf8("Macro files (*.macro)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4631 | "", |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4632 | QFileDialog.Options(QFileDialog.DontConfirmOverwrite)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4633 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4634 | if not fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4635 | return # user aborted |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4636 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4637 | ext = QFileInfo(fname).suffix() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4638 | if not ext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4639 | ex = selectedFilter.split("(*")[1].split(")")[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4640 | if ex: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4641 | fname += ex |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4642 | if QFileInfo(fname).exists(): |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
4643 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4644 | self.trUtf8("Save macro"), |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
4645 | 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
|
4646 | " Overwrite it?</p>").format(fname), |
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
4647 | type_ = E5MessageBox.Warning) |
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
4648 | if not res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4649 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4650 | fname = Utilities.toNativeSeparators(fname) |
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 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4653 | 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
|
4654 | f.write("{0}{1}".format(name, "\n")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4655 | f.write(self.macros[name].save()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4656 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4657 | except IOError: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
536
diff
changeset
|
4658 | E5MessageBox.critical(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4659 | self.trUtf8("Error saving macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4660 | 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
|
4661 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4662 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4663 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4664 | def macroRecordingStart(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4665 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4666 | Public method to start macro recording. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4667 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4668 | if self.recording: |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4669 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4670 | self.trUtf8("Start Macro Recording"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4671 | self.trUtf8("Macro recording is already active. Start new?"), |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4672 | type_ = E5MessageBox.Warning, |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4673 | yesDefault = True) |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4674 | if res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4675 | self.macroRecordingStop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4676 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4677 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4678 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4679 | self.recording = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4680 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4681 | self.curMacro = QsciMacro(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4682 | self.curMacro.startRecording() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4683 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4684 | def macroRecordingStop(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4685 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4686 | Public method to stop macro recording. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4687 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4688 | if not self.recording: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4689 | return # we are not recording |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4690 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4691 | self.curMacro.endRecording() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4692 | self.recording = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4693 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4694 | name, ok = QInputDialog.getText(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4695 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4696 | self.trUtf8("Macro Recording"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4697 | self.trUtf8("Enter name of the macro:"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4698 | QLineEdit.Normal) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4699 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4700 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4701 | self.macros[name] = self.curMacro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4702 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4703 | self.curMacro = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4704 | |
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 | ## Overwritten methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4707 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4708 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4709 | def undo(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4710 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4711 | Public method to undo the last recorded change. |
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 | QsciScintillaCompat.undo(self) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4714 | 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
|
4715 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
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 | def redo(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4718 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4719 | Public method to redo the last recorded change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4720 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4721 | QsciScintillaCompat.redo(self) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4722 | 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
|
4723 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4724 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4725 | def close(self, alsoDelete = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4726 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4727 | Public method called when the window gets closed. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4728 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4729 | This overwritten method redirects the action to our |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4730 | ViewManager.closeEditor, which in turn calls our closeIt |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4731 | method. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4732 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4733 | @param alsoDelete ignored |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4734 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4735 | return self.vm.closeEditor(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4736 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4737 | def closeIt(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4738 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4739 | 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
|
4740 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4741 | if Preferences.getEditor("ClearBreaksOnClose"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4742 | self.__menuClearBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4743 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4744 | for clone in self.__clones[:]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4745 | self.removeClone(clone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4746 | clone.removeClone(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4747 | |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
4748 | self.breakpointModel.rowsAboutToBeRemoved.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4749 | self.__deleteBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
4750 | self.breakpointModel.dataAboutToBeChanged.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4751 | self.__breakPointDataAboutToBeChanged) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
4752 | self.breakpointModel.dataChanged.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4753 | self.__changeBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
4754 | self.breakpointModel.rowsInserted.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4755 | self.__addBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4756 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4757 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4758 | self.spell.stopIncrementalCheck() |
507
23652b3a0533
Fixed an issue with not connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
502
diff
changeset
|
4759 | self.project.projectPropertiesChanged.disconnect( |
23652b3a0533
Fixed an issue with not connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
502
diff
changeset
|
4760 | self.__projectPropertiesChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4761 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4762 | QsciScintillaCompat.close(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4763 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4764 | def keyPressEvent(self, ev): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4765 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4766 | 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
|
4767 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4768 | @param ev key event (QKeyEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4769 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4770 | txt = ev.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4771 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4772 | # See it is text to insert. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4773 | if len(txt) and txt >= " ": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4774 | QsciScintillaCompat.keyPressEvent(self, ev) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4775 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4776 | ev.ignore() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4777 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4778 | def focusInEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4779 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4780 | Protected method called when the editor receives focus. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4781 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4782 | 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
|
4783 | 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
|
4784 | 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
|
4785 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4786 | @param event the event object (QFocusEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4787 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4788 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4789 | self.vm.editActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4790 | self.vm.editorActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4791 | self.vm.copyActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4792 | 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
|
4793 | self.vm.searchActGrp.setEnabled(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4794 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4795 | self.setCaretWidth(self.caretWidth) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4796 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4797 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4798 | self.__updateReadOnly(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4799 | if self.vm.editorsCheckFocusInEnabled() and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4800 | not self.inReopenPrompt and self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4801 | QFileInfo(self.fileName).lastModified().toString() != \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4802 | self.lastModified.toString(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4803 | if Preferences.getEditor("AutoReopen") and not self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4804 | self.refresh() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4805 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4806 | self.inReopenPrompt = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4807 | msg = self.trUtf8(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4808 | """<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
|
4809 | """ 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
|
4810 | yesDefault = True |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4811 | if self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4812 | msg += self.trUtf8(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4813 | """<br><b>Warning:</b> You will loose""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4814 | """ your changes upon reopening it.""") |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4815 | yesDefault = False |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4816 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4817 | self.trUtf8("File changed"), msg, |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4818 | type_ = E5MessageBox.Warning, |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4819 | yesDefault = yesDefault) |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
4820 | if res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4821 | self.refresh() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4822 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4823 | # do not prompt for this change again... |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4824 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4825 | self.inReopenPrompt = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4826 | |
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
|
4827 | 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
|
4828 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4829 | QsciScintillaCompat.focusInEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4830 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4831 | def focusOutEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4832 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4833 | Public method called when the editor loses focus. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4834 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4835 | @param event the event object (QFocusEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4836 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4837 | self.vm.editorActGrp.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4838 | self.setCaretWidth(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4839 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4840 | QsciScintillaCompat.focusOutEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4841 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4842 | def changeEvent(self, evt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4843 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4844 | Protected method called to process an event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4845 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4846 | This implements special handling for the events showMaximized, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4847 | showMinimized and showNormal. The windows caption is shortened |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4848 | 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
|
4849 | 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
|
4850 | with the QWorkspace. |
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 | @param evt the event, that was generated (QEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4853 | @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
|
4854 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4855 | if evt.type() == QEvent.WindowStateChange and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4856 | self.fileName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4857 | if self.windowState() == Qt.WindowStates(Qt.WindowMinimized): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4858 | cap = os.path.basename(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4859 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4860 | cap = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4861 | if self.isReadOnly(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4862 | cap = self.trUtf8("{0} (ro)").format(cap) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4863 | self.setWindowTitle(cap) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4864 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4865 | QsciScintillaCompat.changeEvent(self, evt) |
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 | def mousePressEvent(self, event): |
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 | Protected method to handle the mouse press event. |
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 | @param event the mouse press event (QMouseEvent) |
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 | self.vm.eventFilter(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4874 | QsciScintillaCompat.mousePressEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4875 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4876 | def __updateReadOnly(self, bForce = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4877 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4878 | Private method to update the readOnly information for this editor. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4879 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4880 | 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
|
4881 | the attributes have actually changed, such as during |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4882 | initialization time. A signal is emitted after the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4883 | caption change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4884 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4885 | @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
|
4886 | signal if there was an attribute change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4887 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4888 | if self.fileName is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4889 | return |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
4890 | 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
|
4891 | if not bForce and (readOnly == self.isReadOnly()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4892 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4893 | cap = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4894 | if readOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4895 | cap = self.trUtf8("{0} (ro)".format(cap)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4896 | self.setReadOnly(readOnly) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4897 | self.setWindowTitle(cap) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4898 | self.captionChanged.emit(cap, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4899 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4900 | def refresh(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4901 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4902 | Public slot to refresh the editor contents. |
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 | # save cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4905 | cline, cindex = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4906 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4907 | # save bookmarks and breakpoints and clear them |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4908 | bmlist = self.getBookmarks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4909 | self.clearBookmarks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4910 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4911 | # clear syntax error markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4912 | self.clearSyntaxError() |
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 | # clear flakes warning markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4915 | self.clearFlakesWarnings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4916 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4917 | # clear breakpoint markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4918 | for handle in list(self.breaks.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4919 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4920 | self.breaks = {} |
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 | # reread the file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4923 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4924 | self.readFile(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4925 | except IOError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4926 | # do not prompt for this change again... |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4927 | self.lastModified = QDateTime.currentDateTime() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4928 | self.setModified(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4929 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4930 | # reset cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4931 | self.setCursorPosition(cline, cindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4932 | self.ensureCursorVisible() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4933 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4934 | # reset bookmarks and breakpoints to their old position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4935 | if bmlist: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4936 | for bm in bmlist: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4937 | self.toggleBookmark(bm) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4938 | self.__restoreBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4939 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
4940 | self.editorSaved.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4941 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4942 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4943 | def setMonospaced(self, on): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4944 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4945 | Public method to set/reset a monospaced font. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4946 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4947 | @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
|
4948 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4949 | if on: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4950 | f = Preferences.getEditorOtherFonts("MonospacedFont") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4951 | self.monospacedStyles(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4952 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4953 | if not self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4954 | self.clearStyles() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4955 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4956 | self.setFont(Preferences.getEditorOtherFonts("DefaultFont")) |
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 | self.useMonospaced = on |
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 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4961 | ## Drag and Drop Support |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4962 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4963 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4964 | def dragEnterEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4965 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4966 | Protected method to handle the drag enter event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4967 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4968 | @param event the drag enter event (QDragEnterEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4969 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4970 | self.inDragDrop = event.mimeData().hasUrls() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4971 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4972 | event.acceptProposedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4973 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4974 | QsciScintillaCompat.dragEnterEvent(self, event) |
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 | def dragMoveEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4977 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4978 | Protected method to handle the drag move event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4979 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4980 | @param event the drag move event (QDragMoveEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4981 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4982 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4983 | event.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4984 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4985 | QsciScintillaCompat.dragMoveEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4986 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4987 | def dragLeaveEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4988 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4989 | Protected method to handle the drag leave event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4990 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4991 | @param event the drag leave event (QDragLeaveEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4992 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4993 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4994 | self.inDragDrop = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4995 | event.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4996 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4997 | QsciScintillaCompat.dragLeaveEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4998 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4999 | def dropEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5000 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5001 | Protected method to handle the drop event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5002 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5003 | @param event the drop event (QDropEvent) |
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 | if event.mimeData().hasUrls(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5006 | for url in event.mimeData().urls(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5007 | fname = url.toLocalFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5008 | if fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5009 | if not QFileInfo(fname).isDir(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5010 | self.vm.openSourceFile(fname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5011 | else: |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
5012 | E5MessageBox.information(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5013 | self.trUtf8("Drop Error"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5014 | 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
|
5015 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5016 | event.acceptProposedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5017 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5018 | QsciScintillaCompat.dropEvent(self, event) |
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.inDragDrop = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5021 | |
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 | ## Support for Qt resources files |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5024 | ################################################################# |
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 | def __initContextMenuResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5027 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5028 | 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
|
5029 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5030 | menu = QMenu(self.trUtf8('Resources')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5031 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5032 | menu.addAction(self.trUtf8('Add file...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5033 | self.__addFileResource) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5034 | menu.addAction(self.trUtf8('Add files...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5035 | self.__addFileResources) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5036 | menu.addAction(self.trUtf8('Add aliased file...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5037 | self.__addFileAliasResource) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5038 | menu.addAction(self.trUtf8('Add localized resource...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5039 | self.__addLocalizedResource) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5040 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5041 | menu.addAction(self.trUtf8('Add resource frame'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5042 | self.__addResourceFrame) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5043 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
5044 | menu.aboutToShow.connect(self.__showContextMenuResources) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5045 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5046 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5047 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5048 | def __showContextMenuResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5049 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5050 | 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
|
5051 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5052 | self.showMenu.emit("Resources", self.resourcesMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5053 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5054 | def __addFileResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5055 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5056 | 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
|
5057 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5058 | dirStr = os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5059 | file = QFileDialog.getOpenFileName(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5060 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5061 | self.trUtf8("Add file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5062 | dirStr, |
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 | if file: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5065 | relFile = QDir(dirStr).relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5066 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5067 | self.insert(" <file>{0}</file>\n".format(relFile)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5068 | self.setCursorPosition(line + 1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5069 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5070 | def __addFileResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5071 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5072 | 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
|
5073 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5074 | dirStr = os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5075 | files = QFileDialog.getOpenFileNames(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5076 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5077 | self.trUtf8("Add file resources"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5078 | dirStr, |
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 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5081 | myDir = QDir(dirStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5082 | filesText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5083 | for file in files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5084 | relFile = myDir.relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5085 | filesText += " <file>{0}</file>\n".format(relFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5086 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5087 | self.insert(filesText) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5088 | self.setCursorPosition(line + len(files), index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5089 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5090 | def __addFileAliasResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5091 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5092 | 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
|
5093 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5094 | dirStr = os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5095 | file = QFileDialog.getOpenFileName(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5096 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5097 | self.trUtf8("Add aliased file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5098 | dirStr, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5099 | "") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5100 | if file: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5101 | relFile = QDir(dirStr).relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5102 | alias, ok = QInputDialog.getText(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5103 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5104 | self.trUtf8("Add aliased file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5105 | 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
|
5106 | QLineEdit.Normal, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5107 | relFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5108 | if ok and alias: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5109 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5110 | self.insert(' <file alias="{1}">{0}</file>\n'\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5111 | .format(relFile, alias)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5112 | self.setCursorPosition(line + 1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5113 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5114 | def __addLocalizedResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5115 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5116 | 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
|
5117 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5118 | from Project.AddLanguageDialog import AddLanguageDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5119 | dlg = AddLanguageDialog(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5120 | if dlg.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5121 | lang = dlg.getSelectedLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5122 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5123 | 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
|
5124 | self.setCursorPosition(line + 2, index) |
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 | def __addResourceFrame(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5127 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5128 | 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
|
5129 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5130 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5131 | self.insert('<!DOCTYPE RCC>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5132 | '<RCC version="1.0">\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5133 | '<qresource>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5134 | '</qresource>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5135 | '</RCC>\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5136 | self.setCursorPosition(line + 5, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5137 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5138 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5139 | ## Support for diagrams below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5142 | def __showClassDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5143 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5144 | 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
|
5145 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5146 | from Graphics.UMLClassDiagram import UMLClassDiagram |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5147 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5148 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5149 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5150 | self.classDiagram = UMLClassDiagram(self.fileName, self, noAttrs = False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5151 | self.classDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5152 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5153 | def __showPackageDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5154 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5155 | 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
|
5156 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5157 | from Graphics.PackageDiagram import PackageDiagram |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5158 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5159 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5160 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5161 | 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
|
5162 | 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
|
5163 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5164 | self.trUtf8("Package Diagram"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5165 | self.trUtf8("""Include class attributes?"""), |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5166 | yesDefault = True) |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5167 | self.packageDiagram = PackageDiagram(package, self, noAttrs = not res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5168 | self.packageDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5169 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5170 | def __showImportsDiagram(self): |
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 | 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
|
5173 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5174 | from Graphics.ImportsDiagram import ImportsDiagram |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5175 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5176 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5177 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5178 | 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
|
5179 | 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
|
5180 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5181 | self.trUtf8("Imports Diagram"), |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5182 | self.trUtf8("""Include imports from external modules?""")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5183 | self.importsDiagram = ImportsDiagram(package, self, |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5184 | showExternalImports = res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5185 | self.importsDiagram.show() |
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 __showApplicationDiagram(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 | 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
|
5190 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5191 | from Graphics.ApplicationDiagram import ApplicationDiagram |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5192 | res = E5MessageBox.yesNo(self, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5193 | self.trUtf8("Application Diagram"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5194 | self.trUtf8("""Include module names?"""), |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5195 | yesDefault = True) |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5196 | self.applicationDiagram = ApplicationDiagram(self.project, |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5197 | self, noModules = not res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5198 | self.applicationDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5199 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5200 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5201 | ## Typing aids related methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5202 | ####################################################################### |
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 __toggleTypingAids(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 | Private slot to toggle the typing aids. |
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 | if self.menuActs["TypingAidsEnabled"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5209 | self.completer.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5210 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5211 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5212 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5213 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5214 | ## Autocompleting templates |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5215 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5216 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5217 | def editorCommand(self, cmd): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5218 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5219 | Public method to perform a simple editor command. |
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 | @param cmd the scintilla command to be performed |
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 | if cmd == QsciScintilla.SCI_TAB: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5224 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5225 | tmplName = self.getWordLeft(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5226 | if tmplName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5227 | if e5App().getObject("TemplateViewer").hasTemplate(tmplName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5228 | self.__applyTemplate(tmplName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5229 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5230 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5231 | templateNames = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5232 | e5App().getObject("TemplateViewer").getTemplateNames(tmplName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5233 | if len(templateNames) == 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5234 | self.__applyTemplate(templateNames[0]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5235 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5236 | elif len(templateNames) > 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5237 | self.showUserList(TemplateCompletionListID, |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5238 | ["{0}?{1:d}".format(t, self.TemplateImageID) \ |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5239 | for t in templateNames]) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5240 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5241 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5242 | QsciScintillaCompat.editorCommand(self, cmd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5243 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5244 | def __completionListSelected(self, id, txt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5245 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5246 | 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
|
5247 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5248 | @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
|
5249 | @param txt the selected text (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5250 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5251 | if id == TemplateCompletionListID: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5252 | self.__applyTemplate(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5253 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5254 | def __applyTemplate(self, templateName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5255 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5256 | Private method to apply a template by name. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5257 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5258 | @param templateName name of the template to apply (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5259 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5260 | if e5App().getObject("TemplateViewer").hasTemplate(templateName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5261 | self.extendSelectionWordLeft() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5262 | e5App().getObject("TemplateViewer").applyNamedTemplate(templateName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5263 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5264 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5265 | ## Project related methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5266 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5267 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5268 | def __projectPropertiesChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5269 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5270 | 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
|
5271 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5272 | if self.spell: |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5273 | pwl, pel = self.project.getProjectDictionaries() |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5274 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5275 | pwl = pwl, pel = pel) |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
5276 | |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
5277 | self.setEolModeByEolString(self.project.getEolString()) |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
5278 | self.convertEols(self.eolMode()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5279 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5280 | def addedToProject(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5281 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5282 | 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
|
5283 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5284 | if self.spell: |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5285 | pwl, pel = self.project.getProjectDictionaries() |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5286 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5287 | pwl = pwl, pel = pel) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5288 | self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5289 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5290 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5291 | ## Spellchecking related methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5292 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5293 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5294 | def __setSpellingLanguage(self, language, pwl = "", pel = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5295 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5296 | Private slot to set the spell checking language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5297 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5298 | @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
|
5299 | @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
|
5300 | @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
|
5301 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5302 | if self.spell and self.spell.getLanguage() != language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5303 | self.spell.setLanguage(language, pwl = pwl, pel = pel) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5304 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5305 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5306 | def __setSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5307 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5308 | Private method to initialize the spell checking functionality. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5309 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5310 | if Preferences.getEditor("SpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5311 | self.__spellCheckStringsOnly = Preferences.getEditor("SpellCheckStringsOnly") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5312 | if self.spell is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5313 | self.spell = SpellChecker(self, self.spellingIndicator, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5314 | checkRegion = self.isSpellCheckRegion) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5315 | self.setSpellingForProject() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5316 | self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5317 | self.spell.setMinimumWordSize( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5318 | Preferences.getEditor("SpellCheckingMinWordSize")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5319 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5320 | self.setAutoSpellChecking() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5321 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5322 | self.spell = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5323 | self.clearAllIndicators(self.spellingIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5324 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5325 | def setSpellingForProject(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5326 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5327 | 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
|
5328 | to the current project. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5329 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5330 | if self.fileName and \ |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5331 | self.project.isOpen() and \ |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5332 | self.project.isProjectSource(self.fileName): |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5333 | pwl, pel = self.project.getProjectDictionaries() |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5334 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5335 | pwl = pwl, pel = pel) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5336 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5337 | def setAutoSpellChecking(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5338 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5339 | Public method to set the automatic spell checking. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5340 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5341 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5342 | self.SCN_CHARADDED.connect(self.__spellCharAdded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5343 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5344 | else: |
542
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
5345 | try: |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
5346 | self.SCN_CHARADDED.disconnect(self.__spellCharAdded) |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
5347 | except TypeError: |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
5348 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5349 | self.clearAllIndicators(self.spellingIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5350 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5351 | def isSpellCheckRegion(self, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5352 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5353 | Public method to check, if the given position is within a region, that should |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5354 | be spell checked. |
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 | @param pos position to be checked (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5357 | @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
|
5358 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5359 | if self.__spellCheckStringsOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5360 | style = self.styleAt(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5361 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5362 | return self.lexer_.isCommentStyle(style) or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5363 | self.lexer_.isStringStyle(style) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5364 | return True |
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 | def __spellCharAdded(self, charNumber): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5367 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5368 | 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
|
5369 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5370 | @param charNumber value of the character entered (integer) |
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 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5373 | if not chr(charNumber).isalnum(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5374 | self.spell.checkWord(self.positionBefore(self.currentPosition()), True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5375 | elif self.hasIndicator(self.spellingIndicator, self.currentPosition()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5376 | self.spell.checkWord(self.currentPosition()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5377 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5378 | def checkSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5379 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5380 | 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
|
5381 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5382 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5383 | cline, cindex = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5384 | dlg = SpellCheckingDialog(self.spell, 0, self.length(), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5385 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5386 | self.setCursorPosition(cline, cindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5387 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5388 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5389 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5390 | def __checkSpellingSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5391 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5392 | Private slot to spell check the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5393 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5394 | sline, sindex, eline, eindex = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5395 | startPos = self.positionFromLineIndex(sline, sindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5396 | endPos = self.positionFromLineIndex(eline, eindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5397 | dlg = SpellCheckingDialog(self.spell, startPos, endPos, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5398 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5399 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5400 | def __checkSpellingWord(self): |
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 | 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
|
5403 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5404 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5405 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5406 | wordStartPos = self.positionFromLineIndex(line, wordStart) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5407 | wordEndPos = self.positionFromLineIndex(line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5408 | dlg = SpellCheckingDialog(self.spell, wordStartPos, wordEndPos, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5409 | dlg.exec_() |
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 | def __showContextMenuSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5412 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5413 | 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
|
5414 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5415 | self.spellingMenu.clear() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5416 | self.spellingSuggActs = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5417 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5418 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5419 | suggestions = self.spell.getSuggestions(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5420 | for suggestion in suggestions[:5]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5421 | self.spellingSuggActs.append(self.spellingMenu.addAction(suggestion)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5422 | if suggestions: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5423 | self.spellingMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5424 | self.spellingMenu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5425 | self.trUtf8("Check spelling..."), self.__checkSpellingWord) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5426 | self.spellingMenu.addAction(self.trUtf8("Add to dictionary"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5427 | self.__addToSpellingDictionary) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5428 | self.spellingMenu.addAction(self.trUtf8("Ignore All"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5429 | self.__ignoreSpellingAlways) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5430 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5431 | self.showMenu.emit("Spelling", self.spellingMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5432 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5433 | def __contextMenuSpellingTriggered(self, action): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5434 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5435 | 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
|
5436 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5437 | @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
|
5438 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5439 | if action in self.spellingSuggActs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5440 | replacement = action.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5441 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5442 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5443 | self.setSelection(line, wordStart, line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5444 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5445 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5446 | self.insert(replacement) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5447 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5448 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5449 | def __addToSpellingDictionary(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5450 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5451 | 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
|
5452 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5453 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5454 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5455 | self.spell.add(word) |
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 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5458 | self.clearIndicator(self.spellingIndicator, line, wordStart, line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5459 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5460 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5461 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5462 | def __removeFromSpellingDictionary(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5463 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5464 | 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
|
5465 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5466 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5467 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5468 | self.spell.remove(word) |
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 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5471 | self.spell.checkDocumentIncrementally() |
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 __ignoreSpellingAlways(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 | 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
|
5476 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5477 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5478 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5479 | self.spell.ignoreAlways(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5480 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5481 | self.spell.checkDocumentIncrementally() |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5482 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5483 | ####################################################################### |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5484 | ## Cooperation related methods |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5485 | ####################################################################### |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5486 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5487 | def getSharingStatus(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5488 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5489 | Public method to get some share status info. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5490 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5491 | @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
|
5492 | 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
|
5493 | 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
|
5494 | (boolean, boolean, boolean, boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5495 | """ |
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
|
5496 | 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
|
5497 | self.project.isOpen() and \ |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5498 | self.project.isProjectFile(self.fileName), \ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5499 | self.__isShared, self.__inSharedEdit, self.__inRemoteSharedEdit |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5500 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5501 | def shareConnected(self, connected): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5502 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5503 | 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
|
5504 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5505 | @param connected flag indicating the connected state (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5506 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5507 | if not connected: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5508 | self.__inRemoteSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5509 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5510 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5511 | self.cancelSharedEdit(send = False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5512 | self.__isSyncing = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5513 | self.__receivedWhileSyncing = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5514 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5515 | def shareEditor(self, share): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5516 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5517 | 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
|
5518 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5519 | @param share flag indicating the share status (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5520 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5521 | self.__isShared = share |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5522 | if not share: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5523 | self.shareConnected(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5524 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5525 | def startSharedEdit(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5526 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5527 | 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
|
5528 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5529 | self.__inSharedEdit = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5530 | self.__savedText = self.text() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5531 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5532 | QCryptographicHash.hash( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5533 | Utilities.encode(self.__savedText, self.encoding)[0], |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5534 | QCryptographicHash.Sha1).toHex(), |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5535 | encoding = "utf-8") |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5536 | self.__send(Editor.StartEditToken, hash) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5537 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5538 | def sendSharedEdit(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5539 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5540 | 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
|
5541 | send the changes. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5542 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5543 | commands = self.__calculateChanges(self.__savedText, self.text()) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5544 | self.__send(Editor.EndEditToken, commands) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5545 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5546 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5547 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5548 | def cancelSharedEdit(self, send = True): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5549 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5550 | 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
|
5551 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5552 | @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
|
5553 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5554 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5555 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5556 | if send: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5557 | self.__send(Editor.CancelEditToken) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5558 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5559 | def __send(self, token, args = None): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5560 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5561 | 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
|
5562 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5563 | @param token command token (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5564 | @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
|
5565 | """ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5566 | if self.vm.isConnected(): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5567 | msg = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5568 | if token in (Editor.StartEditToken, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5569 | Editor.EndEditToken, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5570 | Editor.RequestSyncToken, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5571 | Editor.SyncToken): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5572 | msg = "{0}{1}{2}".format( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5573 | token, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5574 | Editor.Separator, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5575 | args |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5576 | ) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5577 | elif token == Editor.CancelEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5578 | msg = "{0}{1}c".format( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5579 | token, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5580 | Editor.Separator |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5581 | ) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5582 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5583 | 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
|
5584 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5585 | def receive(self, command): |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5586 | """ |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5587 | 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
|
5588 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5589 | @param command command string (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5590 | """ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5591 | if self.__isShared: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5592 | if self.__isSyncing and \ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5593 | not command.startswith(Editor.SyncToken + Editor.Separator): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5594 | self.__receivedWhileSyncing.append(command) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5595 | else: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5596 | self.__dispatchCommand(command) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5597 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5598 | def __dispatchCommand(self, command): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5599 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5600 | Private method to dispatch received commands. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5601 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5602 | @param command command to be processed (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5603 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5604 | token, argsString = command.split(Editor.Separator, 1) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5605 | if token == Editor.StartEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5606 | self.__processStartEditCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5607 | elif token == Editor.CancelEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5608 | self.shareConnected(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5609 | elif token == Editor.EndEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5610 | self.__processEndEditCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5611 | elif token == Editor.RequestSyncToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5612 | self.__processRequestSyncCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5613 | elif token == Editor.SyncToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5614 | self.__processSyncCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5615 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5616 | def __processStartEditCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5617 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5618 | Private slot to process a remote StartEdit command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5619 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5620 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5621 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5622 | if not self.__inSharedEdit and not self.__inRemoteSharedEdit: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5623 | self.__inRemoteSharedEdit = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5624 | self.setReadOnly(True) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5625 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5626 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5627 | QCryptographicHash.hash( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5628 | Utilities.encode(self.text(), self.encoding)[0], |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5629 | QCryptographicHash.Sha1).toHex(), |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5630 | encoding = "utf-8") |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5631 | if hash != argsString: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5632 | # 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
|
5633 | self.__isSyncing = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5634 | self.__send(Editor.RequestSyncToken, argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5635 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5636 | def __calculateChanges(self, old, new): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5637 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5638 | 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
|
5639 | new text. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5640 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5641 | @param old old text (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5642 | @param new new text (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5643 | @return commands to change old into new (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5644 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5645 | oldL = old.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5646 | newL = new.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5647 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5648 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5649 | formatStr = "@@{0} {1} {2} {3}" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5650 | commands = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5651 | 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
|
5652 | if token == "insert": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5653 | commands.append(formatStr.format("i", j1, j2 - j1, -1)) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5654 | commands.extend(newL[j1:j2]) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5655 | elif token == "delete": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5656 | commands.append(formatStr.format("d", j1, i2 - i1, -1)) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5657 | elif token == "replace": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5658 | 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
|
5659 | commands.extend(newL[j1:j2]) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5660 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5661 | 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
|
5662 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5663 | def __processEndEditCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5664 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5665 | Private slot to process a remote EndEdit command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5666 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5667 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5668 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5669 | commands = argsString.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5670 | sep = self.getLineSeparator() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5671 | cur = self.getCursorPosition() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5672 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5673 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5674 | self.beginUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5675 | while commands: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5676 | commandLine = commands.pop(0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5677 | if not commandLine.startswith("@@"): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5678 | continue |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5679 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5680 | command, *args = commandLine.split() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5681 | pos, l1, l2 = [int(arg) for arg in args] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5682 | if command == "@@i": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5683 | txt = sep.join(commands[0:l1]) + sep |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5684 | self.insertAt(txt, pos, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5685 | del commands[0:l1] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5686 | elif command == "@@d": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5687 | self.setSelection(pos, 0, pos + l1, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5688 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5689 | elif command == "@@r": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5690 | self.setSelection(pos, 0, pos + l1, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5691 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5692 | txt = sep.join(commands[0:l2]) + sep |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5693 | self.insertAt(txt, pos, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5694 | del commands[0:l2] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5695 | self.endUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5696 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5697 | self.__inRemoteSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5698 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5699 | self.setCursorPosition(*cur) |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5700 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5701 | def __processRequestSyncCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5702 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5703 | Private slot to process a remote RequestSync command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5704 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5705 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5706 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5707 | if self.__inSharedEdit: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5708 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5709 | QCryptographicHash.hash( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5710 | Utilities.encode(self.__savedText, self.encoding)[0], |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5711 | QCryptographicHash.Sha1).toHex(), |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5712 | encoding = "utf-8") |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5713 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5714 | if hash == argsString: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5715 | self.__send(Editor.SyncToken, self.__savedText) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5716 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5717 | def __processSyncCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5718 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5719 | Private slot to process a remote Sync command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5720 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5721 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5722 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5723 | if self.__isSyncing: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5724 | cur = self.getCursorPosition() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5725 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5726 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5727 | self.beginUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5728 | self.selectAll() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5729 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5730 | self.insertAt(argsString, 0, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5731 | self.endUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5732 | self.setReadOnly(True) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5733 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5734 | self.setCursorPosition(*cur) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5735 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5736 | while self.__receivedWhileSyncing: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5737 | command = self.__receivedWhileSyncing.pop(0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5738 | self.__dispatchCommand(command) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5739 | |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
5740 | self.__isSyncing = False |