Sat, 15 May 2010 10:19:07 +0200
Some code cleanup in Editor.py.
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 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
19 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
20 | from . import Exporters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
21 | from . import Lexers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
22 | from . import TypingCompleters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
23 | from .QsciScintillaCompat import QsciScintillaCompat, QSCINTILLA_VERSION |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
24 | from .SpellChecker import SpellChecker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
25 | from .SpellCheckingDialog import SpellCheckingDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
26 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
27 | from Debugger.EditBreakpointDialog import EditBreakpointDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
28 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
29 | from DebugClients.Python3.coverage import coverage |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
30 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
31 | from DataViews.CodeMetricsDialog import CodeMetricsDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
32 | from DataViews.PyCoverageDialog import PyCoverageDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
33 | from DataViews.PyProfileDialog import PyProfileDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
34 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
35 | from .Printer import Printer |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
36 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
37 | import Preferences |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
38 | import Utilities |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
39 | from Utilities.py3flakes.checker import Checker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
40 | from Utilities.py3flakes.messages import ImportStarUsed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
41 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
42 | import UI.PixmapCache |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
43 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
44 | EditorAutoCompletionListID = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
45 | TemplateCompletionListID = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
46 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
47 | class Editor(QsciScintillaCompat): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
48 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
49 | 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
|
50 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
51 | @signal modificationStatusChanged(boolean, editor) emitted when the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
52 | modification status has changed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
53 | @signal undoAvailable(boolean) emitted to signal the undo availability |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
54 | @signal redoAvailable(boolean) emitted to signal the redo availability |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
55 | @signal cursorChanged(string, int, int) emitted when the cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
56 | was changed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
57 | @signal editorAboutToBeSaved(string) emitted before the editor is saved |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
58 | @signal editorSaved(string) emitted after the editor has been saved |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
59 | @signal editorRenamed(string) emitted after the editor got a new name |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
60 | (i.e. after a 'Save As') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
61 | @signal captionChanged(string, editor) emitted when the caption is |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
62 | updated. Typically due to a readOnly attribute change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
63 | @signal breakpointToggled(editor) emitted when a breakpoint is toggled |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
64 | @signal bookmarkToggled(editor) emitted when a bookmark is toggled |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
65 | @signal syntaxerrorToggled(editor) emitted when a syntax error was discovered |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
66 | @signal autoCompletionAPIsAvailable(avail) emitted after the autocompletion |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
67 | function has been configured |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
68 | @signal coverageMarkersShown(boolean) emitted after the coverage markers have been |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
69 | shown or cleared |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
70 | @signal taskMarkersUpdated(editor) emitted when the task markers were updated |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
71 | @signal showMenu(string, QMenu, editor) emitted when a menu is about to be shown. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
72 | The name of the menu, a reference to the menu and a reference to the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
73 | editor are given. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
74 | @signal languageChanged(language) emitted when the editors language was set. The |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
75 | language is passed as a parameter. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
76 | @signal eolChanged(eol) emitted when the editors eol type was set. The eol string |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
77 | is passed as a parameter. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
78 | @signal encodingChanged(encoding) emitted when the editors encoding was set. The |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
79 | encoding name is passed as a parameter. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
80 | """ |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
81 | # Autocompletion icon definitions |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
82 | ClassID = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
83 | ClassProtectedID = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
84 | ClassPrivateID = 3 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
85 | MethodID = 4 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
86 | MethodProtectedID = 5 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
87 | MethodPrivateID = 6 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
88 | AttributeID = 7 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
89 | AttributeProtectedID = 8 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
90 | AttributePrivateID = 9 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
91 | EnumID = 10 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
92 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
93 | FromDocumentID = 99 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
94 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
95 | TemplateImageID = 100 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
96 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
97 | # Cooperation related definitions |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
98 | Separator = "@@@" |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
99 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
100 | StartEditToken = "START_EDIT" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
101 | EndEditToken = "END_EDIT" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
102 | CancelEditToken = "CANCEL_EDIT" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
103 | RequestSyncToken = "REQUEST_SYNC" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
104 | SyncToken = "SYNC" |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
105 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
106 | def __init__(self, dbs, fn = None, vm = None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
107 | filetype = "", editor = None, tv = None): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
108 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
109 | Constructor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
110 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
111 | @param dbs reference to the debug server object |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
112 | @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
|
113 | a new (empty) editor is opened |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
114 | @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
|
115 | @param filetype type of the source file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
116 | @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
|
117 | @param tv reference to the task viewer object |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
118 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
119 | QsciScintillaCompat.__init__(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
120 | self.setAttribute(Qt.WA_DeleteOnClose) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
121 | self.setAttribute(Qt.WA_KeyCompression) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
122 | self.setUtf8(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
123 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
124 | self.pyExtensions = dbs.getExtensions('Python') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
125 | self.py3Extensions = dbs.getExtensions('Python3') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
126 | self.rbExtensions = dbs.getExtensions('Ruby') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
127 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
128 | self.dbs = dbs |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
129 | self.taskViewer = tv |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
130 | self.fileName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
131 | self.vm = vm |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
132 | self.filetype = filetype |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
133 | self.noName = "" |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
134 | self.project = e5App().getObject("Project") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
135 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
136 | # clear some variables |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
137 | self.lastHighlight = None # remember the last highlighted line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
138 | self.lastErrorMarker = None # remember the last error line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
139 | self.lastCurrMarker = None # remember the last current line |
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 | self.breaks = {} # key: marker handle, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
142 | # value: (lineno, condition, temporary, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
143 | # enabled, ignorecount) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
144 | 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
|
145 | # bookmark markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
146 | self.syntaxerrors = {} # key: marker handle |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
147 | # value: error message |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
148 | self.warnings = {} # key: marker handle |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
149 | # value: list of warning messages |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
150 | self.notcoveredMarkers = [] # just a list of marker handles |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
151 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
152 | self.condHistory = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
153 | self.lexer_ = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
154 | self.__lexerReset = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
155 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
156 | self.encoding = Preferences.getEditor("DefaultEncoding") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
157 | self.apiLanguage = '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
158 | self.lastModified = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
159 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
160 | self.inReopenPrompt = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
161 | # 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
|
162 | 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
|
163 | 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
|
164 | 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
|
165 | 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
|
166 | 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
|
167 | self.__hasTaskMarkers = False # no task markers present |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
168 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
169 | self.macros = {} # list of defined macros |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
170 | self.curMacro = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
171 | self.recording = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
172 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
173 | self.acAPI = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
174 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
175 | # list of clones |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
176 | self.__clones = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
177 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
178 | # clear QScintilla defined keyboard commands |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
179 | # 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
|
180 | self.clearAlternateKeys() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
181 | self.clearKeys() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
182 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
183 | # initialize the mark occurrences timer |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
184 | self.__markOccurrencesTimer = QTimer(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
185 | self.__markOccurrencesTimer.setSingleShot(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
186 | self.__markOccurrencesTimer.setInterval( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
187 | Preferences.getEditor("MarkOccurrencesTimeout")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
188 | self.connect(self.__markOccurrencesTimer, SIGNAL("timeout()"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
189 | self.__markOccurrences) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
190 | self.__markedText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
191 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
192 | # initialize some spellchecking stuff |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
193 | self.spell = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
194 | self.lastLine = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
195 | self.lastIndex = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
196 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
197 | # initialize some cooperation stuff |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
198 | self.__isSyncing = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
199 | self.__receivedWhileSyncing = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
200 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
201 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
202 | self.__isShared = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
203 | self.__inRemoteSharedEdit = False |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
204 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
205 | self.connect(self, SIGNAL('modificationChanged(bool)'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
206 | self.__modificationChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
207 | self.connect(self, SIGNAL('cursorPositionChanged(int,int)'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
208 | self.__cursorPositionChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
209 | self.connect(self, SIGNAL('modificationAttempted()'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
210 | self.__modificationReadOnly) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
211 | self.connect(self, SIGNAL('userListActivated(int, const QString)'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
212 | self.__completionListSelected) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
213 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
214 | # margins layout |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
215 | if QSCINTILLA_VERSION() >= 0x020301: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
216 | self.__unifiedMargins = Preferences.getEditor("UnifiedMargins") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
217 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
218 | self.__unifiedMargins = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
219 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
220 | # define the margins markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
221 | self.breakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
222 | self.markerDefine(UI.PixmapCache.getPixmap("break.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
223 | self.cbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
224 | self.markerDefine(UI.PixmapCache.getPixmap("cBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
225 | self.tbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
226 | self.markerDefine(UI.PixmapCache.getPixmap("tBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
227 | self.tcbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
228 | self.markerDefine(UI.PixmapCache.getPixmap("tCBreak.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
229 | self.dbreakpoint = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
230 | self.markerDefine(UI.PixmapCache.getPixmap("breakDisabled.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
231 | self.bookmark = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
232 | self.markerDefine(UI.PixmapCache.getPixmap("bookmark.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
233 | self.syntaxerror = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
234 | self.markerDefine(UI.PixmapCache.getPixmap("syntaxError.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
235 | self.notcovered = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
236 | self.markerDefine(UI.PixmapCache.getPixmap("notcovered.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
237 | self.taskmarker = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
238 | self.markerDefine(UI.PixmapCache.getPixmap("task.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
239 | self.warning = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
240 | self.markerDefine(UI.PixmapCache.getPixmap("warning.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
241 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
242 | # define the line markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
243 | self.currentline = self.markerDefine(QsciScintilla.Background) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
244 | self.errorline = self.markerDefine(QsciScintilla.Background) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
245 | self.__setLineMarkerColours() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
246 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
247 | self.breakpointMask = (1 << self.breakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
248 | (1 << self.cbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
249 | (1 << self.tbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
250 | (1 << self.tcbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
251 | (1 << self.dbreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
252 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
253 | # configure the margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
254 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
255 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
256 | self.connect(self, SIGNAL('marginClicked(int, int, Qt::KeyboardModifiers)'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
257 | self.__marginClicked) |
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 | # set the eol mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
260 | self.__setEolMode() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
261 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
262 | self.isResourcesFile = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
263 | if editor is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
264 | if self.fileName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
265 | if (QFileInfo(self.fileName).size() // 1024) > \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
266 | Preferences.getEditor("WarnFilesize"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
267 | res = QMessageBox.warning(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
268 | self.trUtf8("Open File"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
269 | 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
|
270 | """ is <b>{1} KB</b>.""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
271 | """ Do you really want to load it?</p>""")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
272 | .format(self.fileName, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
273 | QFileInfo(self.fileName).size() // 1024), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
274 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
275 | QMessageBox.No | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
276 | QMessageBox.Yes), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
277 | QMessageBox.No) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
278 | if res == QMessageBox.No or res == QMessageBox.Cancel: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
279 | raise IOError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
280 | self.readFile(self.fileName, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
281 | bindName = self.__bindName(self.text(0)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
282 | self.__bindLexer(bindName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
283 | self.__bindCompleter(bindName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
284 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
285 | self.isResourcesFile = self.fileName.endswith(".qrc") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
286 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
287 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
288 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
289 | # clone the given editor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
290 | self.setDocument(editor.document()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
291 | self.breaks = editor.breaks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
292 | self.bookmarks = editor.bookmarks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
293 | self.syntaxerrors = editor.syntaxerrors |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
294 | self.notcoveredMarkers = editor.notcoveredMarkers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
295 | self.isResourcesFile = editor.isResourcesFile |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
296 | self.lastModified = editor.lastModified |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
297 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
298 | self.addClone(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
299 | editor.addClone(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
300 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
301 | self.gotoLine(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
302 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
303 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
304 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
305 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
306 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
307 | self.__acHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
308 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
309 | self.__ctHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
310 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
311 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
312 | sh = self.sizeHint() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
313 | if sh.height() < 300: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
314 | sh.setHeight(300) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
315 | self.resize(sh) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
316 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
317 | # Make sure tabbing through a QWorkspace works. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
318 | self.setFocusPolicy(Qt.StrongFocus) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
319 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
320 | self.__updateReadOnly(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
321 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
322 | self.setWhatsThis(self.trUtf8( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
323 | """<b>A Source Editor Window</b>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
324 | """<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
|
325 | """ 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
|
326 | """ is displayed in the window's titlebar.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
327 | """<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
|
328 | """ 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
|
329 | """ of the margins they may be edited.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
330 | """<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
|
331 | """ the line numbers and the fold markers.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
332 | """<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
|
333 | """<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
|
334 | """ about this error.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
335 | )) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
336 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
337 | # 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
|
338 | if self.vm is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
339 | req = self.size() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
340 | bnd = req.boundedTo(self.vm.size()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
341 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
342 | 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
|
343 | self.resize(bnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
344 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
345 | # set the autosave flag |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
346 | self.autosaveEnabled = Preferences.getEditor("AutosaveInterval") > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
347 | self.autosaveManuallyDisabled = False |
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 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
350 | self.__initContextMenuMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
351 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
352 | self.__checkEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
353 | if editor is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
354 | self.__checkLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
355 | self.__checkEncoding() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
356 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
357 | # it's a clone |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
358 | self.languageChanged(editor.apiLanguage, propagate = False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
359 | self.__encodingChanged(editor.encoding, propagate = False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
360 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
361 | self.coverageMarkersShown = False # flag remembering the current status of the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
362 | # code coverage markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
363 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
364 | self.setAcceptDrops(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
365 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
366 | # breakpoint handling |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
367 | self.breakpointModel = self.dbs.getBreakPointModel() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
368 | self.__restoreBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
369 | self.connect(self.breakpointModel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
370 | SIGNAL("rowsAboutToBeRemoved(const QModelIndex &, int, int)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
371 | self.__deleteBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
372 | self.connect(self.breakpointModel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
373 | SIGNAL("dataAboutToBeChanged(const QModelIndex &, const QModelIndex &)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
374 | self.__breakPointDataAboutToBeChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
375 | self.connect(self.breakpointModel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
376 | SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
377 | self.__changeBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
378 | self.connect(self.breakpointModel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
379 | SIGNAL("rowsInserted(const QModelIndex &, int, int)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
380 | self.__addBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
381 | self.connect(self, SIGNAL("linesChanged()"), self.__linesChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
382 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
383 | # establish connection to some ViewManager action groups |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
384 | self.addActions(self.vm.editorActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
385 | self.addActions(self.vm.editActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
386 | self.addActions(self.vm.copyActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
387 | self.addActions(self.vm.viewActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
388 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
389 | # register images to be shown in autocompletion lists |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
390 | self.__registerImages() |
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 | def __registerImages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
393 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
394 | Private method to register images for autocompletion lists. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
395 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
396 | self.registerImage(self.ClassID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
397 | UI.PixmapCache.getPixmap("class.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
398 | self.registerImage(self.ClassProtectedID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
399 | UI.PixmapCache.getPixmap("class_protected.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
400 | self.registerImage(self.ClassPrivateID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
401 | UI.PixmapCache.getPixmap("class_private.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
402 | self.registerImage(self.MethodID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
403 | UI.PixmapCache.getPixmap("method.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
404 | self.registerImage(self.MethodProtectedID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
405 | UI.PixmapCache.getPixmap("method_protected.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
406 | self.registerImage(self.MethodPrivateID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
407 | UI.PixmapCache.getPixmap("method_private.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
408 | self.registerImage(self.AttributeID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
409 | UI.PixmapCache.getPixmap("attribute.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
410 | self.registerImage(self.AttributeProtectedID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
411 | UI.PixmapCache.getPixmap("attribute_protected.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
412 | self.registerImage(self.AttributePrivateID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
413 | UI.PixmapCache.getPixmap("attribute_private.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
414 | self.registerImage(self.EnumID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
415 | UI.PixmapCache.getPixmap("enum.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
416 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
417 | self.registerImage(self.FromDocumentID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
418 | UI.PixmapCache.getPixmap("editor.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
419 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
420 | self.registerImage(self.TemplateImageID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
421 | UI.PixmapCache.getPixmap("templateViewer.png")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
422 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
423 | def addClone(self, editor): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
424 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
425 | 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
|
426 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
427 | @param clone reference to the cloned editor (Editor) |
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.__clones.append(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
430 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
431 | self.connect(editor, SIGNAL('editorRenamed'), self.fileRenamed) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
432 | self.connect(editor, SIGNAL('languageChanged'), self.languageChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
433 | self.connect(editor, SIGNAL('eolChanged'), self.__eolChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
434 | self.connect(editor, SIGNAL('encodingChanged'), self.__encodingChanged) |
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 | def removeClone(self, 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 | 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
|
439 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
440 | @param clone reference to the cloned editor (Editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
441 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
442 | if editor in self.__clones: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
443 | self.disconnect(editor, SIGNAL('editorRenamed'), self.fileRenamed) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
444 | self.disconnect(editor, SIGNAL('languageChanged'), self.languageChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
445 | self.disconnect(editor, SIGNAL('eolChanged'), self.__eolChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
446 | self.disconnect(editor, SIGNAL('encodingChanged'), self.__encodingChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
447 | self.__clones.remove(editor) |
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 | def __bindName(self, line0): |
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 | 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
|
452 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
453 | @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
|
454 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
455 | bindName = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
456 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
457 | if line0.startswith("<?xml"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
458 | # override extension for XML files |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
459 | bindName = "dummy.xml" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
460 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
461 | # check filetype |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
462 | if self.filetype == "Python": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
463 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
464 | elif self.filetype == "Ruby": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
465 | bindName = "dummy.rb" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
466 | elif self.filetype == "D": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
467 | bindName = "dummy.d" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
468 | elif self.filetype == "Properties": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
469 | bindName = "dummy.ini" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
470 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
471 | # #! marker detection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
472 | if line0.startswith("#!"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
473 | if "python3" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
474 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
475 | self.filetype = "Python3" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
476 | elif "python2" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
477 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
478 | self.filetype = "Python" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
479 | elif "python" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
480 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
481 | self.filetype = "Python" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
482 | elif ("/bash" in line0 or "/sh" in line0): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
483 | bindName = "dummy.sh" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
484 | elif "ruby" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
485 | bindName = "dummy.rb" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
486 | self.filetype = "Ruby" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
487 | elif "perl" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
488 | bindName = "dummy.pl" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
489 | elif "lua" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
490 | bindName = "dummy.lua" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
491 | elif "dmd" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
492 | bindName = "dummy.d" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
493 | self.filetype = "D" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
494 | return bindName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
495 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
496 | def getMenu(self, menuName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
497 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
498 | 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
|
499 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
500 | @param menuName name of the menu (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
501 | @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
|
502 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
503 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
504 | return self.__menus[menuName] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
505 | except KeyError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
506 | return None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
507 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
508 | def hasMiniMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
509 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
510 | Public method to check the miniMenu flag. |
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 | @return flag indicating a minimized context menu (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
513 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
514 | return self.miniMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
515 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
516 | def __initContextMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
517 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
518 | Private method used to setup the context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
519 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
520 | self.miniMenu = Preferences.getEditor("MiniContextMenu") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
521 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
522 | self.menuActs = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
523 | self.menu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
524 | self.__menus = { |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
525 | "Main" : self.menu, |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
528 | self.languagesMenu = self.__initContextMenuLanguages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
529 | self.__menus["Languages"] = self.languagesMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
530 | if self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
531 | self.resourcesMenu = self.__initContextMenuResources() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
532 | self.__menus["Resources"] = self.resourcesMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
533 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
534 | self.checksMenu = self.__initContextMenuChecks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
535 | self.showMenu = self.__initContextMenuShow() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
536 | self.graphicsMenu = self.__initContextMenuGraphics() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
537 | self.autocompletionMenu = self.__initContextMenuAutocompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
538 | self.__menus["Checks"] = self.checksMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
539 | self.__menus["Show"] = self.showMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
540 | self.__menus["Graphics"] = self.graphicsMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
541 | self.__menus["Autocompletion"] = self.autocompletionMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
542 | self.exportersMenu = self.__initContextMenuExporters() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
543 | self.__menus["Exporters"] = self.exportersMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
544 | self.eolMenu = self.__initContextMenuEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
545 | self.__menus["Eol"] = self.eolMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
546 | self.encodingsMenu = self.__initContextMenuEncodings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
547 | self.__menus["Encodings"] = self.encodingsMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
548 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
549 | self.menuActs["Undo"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
550 | self.menu.addAction(UI.PixmapCache.getIcon("editUndo.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
551 | self.trUtf8('Undo'), self.undo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
552 | self.menuActs["Redo"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
553 | self.menu.addAction(UI.PixmapCache.getIcon("editRedo.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
554 | self.trUtf8('Redo'), self.redo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
555 | self.menuActs["Revert"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
556 | 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
|
557 | self.revertToUnmodified) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
558 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
559 | self.menuActs["Cut"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
560 | self.menu.addAction(UI.PixmapCache.getIcon("editCut.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
561 | self.trUtf8('Cut'), self.cut) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
562 | self.menuActs["Copy"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
563 | self.menu.addAction(UI.PixmapCache.getIcon("editCopy.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
564 | self.trUtf8('Copy'), self.copy) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
565 | self.menu.addAction(UI.PixmapCache.getIcon("editPaste.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
566 | self.trUtf8('Paste'), self.paste) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
567 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
568 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
569 | self.menu.addAction(UI.PixmapCache.getIcon("editIndent.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
570 | self.trUtf8('Indent'), self.indentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
571 | self.menu.addAction(UI.PixmapCache.getIcon("editUnindent.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
572 | self.trUtf8('Unindent'), self.unindentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
573 | self.menuActs["Comment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
574 | self.menu.addAction(UI.PixmapCache.getIcon("editComment.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
575 | self.trUtf8('Comment'), self.commentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
576 | self.menuActs["Uncomment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
577 | self.menu.addAction(UI.PixmapCache.getIcon("editUncomment.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
578 | self.trUtf8('Uncomment'), self.uncommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
579 | self.menuActs["StreamComment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
580 | self.menu.addAction(self.trUtf8('Stream Comment'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
581 | self.streamCommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
582 | self.menuActs["BoxComment"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
583 | self.menu.addAction(self.trUtf8('Box Comment'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
584 | self.boxCommentLineOrSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
585 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
586 | self.menu.addAction(self.trUtf8('Select to brace'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
587 | self.selectToMatchingBrace) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
588 | 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
|
589 | 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
|
590 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
591 | self.menuActs["SpellCheck"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
592 | self.menu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
593 | self.trUtf8('Check spelling...'), self.checkSpelling) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
594 | self.menuActs["SpellCheckSelection"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
595 | self.menu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
596 | self.trUtf8('Check spelling of selection...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
597 | self.__checkSpellingSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
598 | self.menuActs["SpellCheckRemove"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
599 | self.menu.addAction(self.trUtf8("Remove from dictionary"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
600 | self.__removeFromSpellingDictionary) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
601 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
602 | self.menu.addAction(self.trUtf8('Shorten empty lines'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
603 | self.shortenEmptyLines) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
604 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
605 | self.menuActs["Languages"] = self.menu.addMenu(self.languagesMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
606 | self.menuActs["Encodings"] = self.menu.addMenu(self.encodingsMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
607 | self.menuActs["Eol"] = self.menu.addMenu(self.eolMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
608 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
609 | self.menuActs["MonospacedFont"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
610 | self.menu.addAction(self.trUtf8("Use Monospaced Font"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
611 | self.handleMonospacedEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
612 | self.menuActs["MonospacedFont"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
613 | self.menuActs["MonospacedFont"].setChecked(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
614 | self.menuActs["AutosaveEnable"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
615 | self.menu.addAction(self.trUtf8("Autosave enabled"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
616 | self.__autosaveEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
617 | self.menuActs["AutosaveEnable"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
618 | self.menuActs["AutosaveEnable"].setChecked(self.autosaveEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
619 | self.menuActs["TypingAidsEnabled"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
620 | self.menu.addAction(self.trUtf8("Typing aids enabled"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
621 | self.__toggleTypingAids) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
622 | self.menuActs["TypingAidsEnabled"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
623 | 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
|
624 | self.menuActs["TypingAidsEnabled"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
625 | 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
|
626 | self.menuActs["AutoCompletionEnable"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
627 | self.menu.addAction(self.trUtf8("Autocompletion enabled"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
628 | self.__toggleAutoCompletionEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
629 | self.menuActs["AutoCompletionEnable"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
630 | self.menuActs["AutoCompletionEnable"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
631 | self.autoCompletionThreshold() != -1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
632 | if not self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
633 | self.menu.addMenu(self.autocompletionMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
634 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
635 | if self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
636 | self.menu.addMenu(self.resourcesMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
637 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
638 | self.menuActs["Check"] = self.menu.addMenu(self.checksMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
639 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
640 | self.menuActs["Show"] = self.menu.addMenu(self.showMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
641 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
642 | self.menuActs["Diagrams"] = self.menu.addMenu(self.graphicsMenu) |
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 | 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
|
645 | 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
|
646 | self.__newViewNewSplit) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
647 | if not self.vm.canSplit(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
648 | act.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
649 | self.menu.addAction(UI.PixmapCache.getIcon("close.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
650 | self.trUtf8('Close'), self.__contextClose) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
651 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
652 | self.menuActs["Save"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
653 | self.menu.addAction(UI.PixmapCache.getIcon("fileSave.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
654 | self.trUtf8('Save'), self.__contextSave) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
655 | self.menu.addAction(UI.PixmapCache.getIcon("fileSaveAs.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
656 | self.trUtf8('Save As...'), self.__contextSaveAs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
657 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
658 | self.menu.addMenu(self.exportersMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
659 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
660 | self.menu.addAction(UI.PixmapCache.getIcon("printPreview.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
661 | self.trUtf8("Print Preview"), self.printPreviewFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
662 | self.menu.addAction(UI.PixmapCache.getIcon("print.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
663 | self.trUtf8('Print'), self.printFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
664 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
665 | self.connect(self.menu, SIGNAL('aboutToShow()'), self.__showContextMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
666 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
667 | self.spellingMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
668 | self.__menus["Spelling"] = self.spellingMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
669 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
670 | self.connect(self.spellingMenu, SIGNAL('aboutToShow()'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
671 | self.__showContextMenuSpelling) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
672 | self.connect(self.spellingMenu, SIGNAL('triggered(QAction *)'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
673 | self.__contextMenuSpellingTriggered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
674 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
675 | def __initContextMenuAutocompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
676 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
677 | 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
|
678 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
679 | menu = QMenu(self.trUtf8('Autocomplete')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
680 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
681 | self.menuActs["acDynamic"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
682 | menu.addAction(self.trUtf8('dynamic'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
683 | self.autoComplete) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
684 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
685 | menu.addAction(self.trUtf8('from Document'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
686 | self.autoCompleteFromDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
687 | self.menuActs["acAPI"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
688 | menu.addAction(self.trUtf8('from APIs'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
689 | self.autoCompleteFromAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
690 | self.menuActs["acAPIDocument"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
691 | menu.addAction(self.trUtf8('from Document and APIs'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
692 | self.autoCompleteFromAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
693 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
694 | self.menuActs["calltip"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
695 | menu.addAction(self.trUtf8('Calltip'), self.callTip) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
696 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
697 | self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuAutocompletion) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
698 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
699 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
700 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
701 | def __initContextMenuChecks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
702 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
703 | 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
|
704 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
705 | menu = QMenu(self.trUtf8('Check')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
706 | self.connect(menu, SIGNAL("aboutToShow()"), self.__showContextMenuChecks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
707 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
708 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
709 | def __initContextMenuShow(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
710 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
711 | 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
|
712 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
713 | menu = QMenu(self.trUtf8('Show')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
714 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
715 | menu.addAction(self.trUtf8('Code metrics...'), self.__showCodeMetrics) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
716 | self.coverageMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
717 | menu.addAction(self.trUtf8('Code coverage...'), self.__showCodeCoverage) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
718 | self.coverageShowAnnotationMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
719 | menu.addAction(self.trUtf8('Show code coverage annotations'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
720 | self.__codeCoverageShowAnnotations) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
721 | self.coverageHideAnnotationMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
722 | menu.addAction(self.trUtf8('Hide code coverage annotations'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
723 | self.__codeCoverageHideAnnotations) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
724 | self.profileMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
725 | menu.addAction(self.trUtf8('Profile data...'), self.__showProfileData) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
726 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
727 | self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuShow) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
728 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
729 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
730 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
731 | def __initContextMenuGraphics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
732 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
733 | 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
|
734 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
735 | menu = QMenu(self.trUtf8('Diagrams')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
736 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
737 | menu.addAction(self.trUtf8('Class Diagram...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
738 | self.__showClassDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
739 | menu.addAction(self.trUtf8('Package Diagram...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
740 | self.__showPackageDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
741 | menu.addAction(self.trUtf8('Imports Diagram...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
742 | self.__showImportsDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
743 | self.applicationDiagramMenuAct = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
744 | menu.addAction(self.trUtf8('Application Diagram...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
745 | self.__showApplicationDiagram) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
746 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
747 | self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuGraphics) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
748 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
749 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
750 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
751 | def __initContextMenuLanguages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
752 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
753 | 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
|
754 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
755 | menu = QMenu(self.trUtf8("Languages")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
756 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
757 | self.languagesActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
758 | self.noLanguageAct = menu.addAction(self.trUtf8("No Language")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
759 | self.noLanguageAct.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
760 | self.noLanguageAct.setData("None") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
761 | self.languagesActGrp.addAction(self.noLanguageAct) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
762 | menu.addSeparator() |
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.supportedLanguages = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
765 | supportedLanguages = Lexers.getSupportedLanguages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
766 | languages = sorted(list(supportedLanguages.keys())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
767 | for language in languages: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
768 | if language != "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
769 | self.supportedLanguages[language] = supportedLanguages[language][:] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
770 | act = menu.addAction(self.supportedLanguages[language][0]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
771 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
772 | act.setData(language) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
773 | self.supportedLanguages[language].append(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
774 | self.languagesActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
775 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
776 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
777 | self.pygmentsAct = menu.addAction(self.trUtf8("Guessed")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
778 | self.pygmentsAct.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
779 | self.pygmentsAct.setData("Guessed") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
780 | self.languagesActGrp.addAction(self.pygmentsAct) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
781 | self.pygmentsSelAct = menu.addAction(self.trUtf8("Alternatives")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
782 | self.pygmentsSelAct.setData("Alternatives") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
783 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
784 | self.connect(menu, SIGNAL('triggered(QAction *)'), self.__languageMenuTriggered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
785 | self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuLanguages) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
786 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
787 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
788 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
789 | def __initContextMenuEncodings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
790 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
791 | 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
|
792 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
793 | self.supportedEncodings = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
794 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
795 | menu = QMenu(self.trUtf8("Encodings")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
796 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
797 | self.encodingsActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
798 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
799 | for encoding in sorted(Utilities.supportedCodecs): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
800 | act = menu.addAction(encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
801 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
802 | act.setData(encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
803 | self.supportedEncodings[encoding] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
804 | self.encodingsActGrp.addAction(act) |
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 | self.connect(menu, SIGNAL('triggered(QAction *)'), self.__encodingsMenuTriggered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
807 | self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuEncodings) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
808 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
809 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
810 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
811 | def __initContextMenuEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
812 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
813 | 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
|
814 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
815 | self.supportedEols = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
816 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
817 | menu = QMenu(self.trUtf8("End-of-Line Type")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
818 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
819 | self.eolActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
820 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
821 | act = menu.addAction(self.trUtf8("Unix")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
822 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
823 | act.setData('\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
824 | self.supportedEols['\n'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
825 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
826 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
827 | act = menu.addAction(self.trUtf8("Windows")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
828 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
829 | act.setData('\r\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
830 | self.supportedEols['\r\n'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
831 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
832 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
833 | act = menu.addAction(self.trUtf8("Macintosh")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
834 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
835 | act.setData('\r') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
836 | self.supportedEols['\r'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
837 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
838 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
839 | self.connect(menu, SIGNAL('triggered(QAction *)'), self.__eolMenuTriggered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
840 | self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuEol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
841 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
842 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
843 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
844 | def __initContextMenuExporters(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
845 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
846 | 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
|
847 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
848 | menu = QMenu(self.trUtf8("Export as")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
849 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
850 | supportedExporters = Exporters.getSupportedFormats() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
851 | exporters = sorted(list(supportedExporters.keys())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
852 | for exporter in exporters: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
853 | act = menu.addAction(supportedExporters[exporter]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
854 | act.setData(exporter) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
855 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
856 | self.connect(menu, SIGNAL('triggered(QAction *)'), self.__exportMenuTriggered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
857 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
858 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
859 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
860 | def __initContextMenuMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
861 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
862 | 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
|
863 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
864 | self.marginMenuActs = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
865 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
866 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
867 | self.__initContextMenuUnifiedMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
868 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
869 | self.__initContextMenuSeparateMargins() |
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 | def __initContextMenuSeparateMargins(self): |
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 | 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
|
874 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
875 | # bookmark margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
876 | self.bmMarginMenu = QMenu() |
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 | self.bmMarginMenu.addAction(self.trUtf8('Toggle bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
879 | self.menuToggleBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
880 | self.marginMenuActs["NextBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
881 | self.bmMarginMenu.addAction(self.trUtf8('Next bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
882 | self.nextBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
883 | self.marginMenuActs["PreviousBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
884 | self.bmMarginMenu.addAction(self.trUtf8('Previous bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
885 | self.previousBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
886 | self.marginMenuActs["ClearBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
887 | self.bmMarginMenu.addAction(self.trUtf8('Clear all bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
888 | self.clearBookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
889 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
890 | self.connect(self.bmMarginMenu, SIGNAL('aboutToShow()'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
891 | self.__showContextMenuMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
892 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
893 | # breakpoint margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
894 | self.bpMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
895 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
896 | self.marginMenuActs["Breakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
897 | self.bpMarginMenu.addAction(self.trUtf8('Toggle breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
898 | self.menuToggleBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
899 | self.marginMenuActs["TempBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
900 | self.bpMarginMenu.addAction(self.trUtf8('Toggle temporary breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
901 | self.__menuToggleTemporaryBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
902 | self.marginMenuActs["EditBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
903 | self.bpMarginMenu.addAction(self.trUtf8('Edit breakpoint...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
904 | self.menuEditBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
905 | self.marginMenuActs["EnableBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
906 | self.bpMarginMenu.addAction(self.trUtf8('Enable breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
907 | self.__menuToggleBreakpointEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
908 | self.marginMenuActs["NextBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
909 | self.bpMarginMenu.addAction(self.trUtf8('Next breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
910 | self.menuNextBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
911 | self.marginMenuActs["PreviousBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
912 | self.bpMarginMenu.addAction(self.trUtf8('Previous breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
913 | self.menuPreviousBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
914 | self.marginMenuActs["ClearBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
915 | self.bpMarginMenu.addAction(self.trUtf8('Clear all breakpoints'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
916 | self.__menuClearBreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
917 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
918 | self.connect(self.bpMarginMenu, SIGNAL('aboutToShow()'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
919 | self.__showContextMenuMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
920 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
921 | # indicator margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
922 | self.indicMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
923 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
924 | self.marginMenuActs["GotoSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
925 | self.indicMarginMenu.addAction(self.trUtf8('Goto syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
926 | self.gotoSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
927 | self.marginMenuActs["ShowSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
928 | 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
|
929 | self.__showSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
930 | self.marginMenuActs["ClearSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
931 | self.indicMarginMenu.addAction(self.trUtf8('Clear syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
932 | self.clearSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
933 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
934 | self.marginMenuActs["NextWarningMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
935 | self.indicMarginMenu.addAction(self.trUtf8("Next warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
936 | self.nextFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
937 | self.marginMenuActs["PreviousWarningMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
938 | self.indicMarginMenu.addAction(self.trUtf8("Previous warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
939 | self.previousFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
940 | self.marginMenuActs["ShowWarning"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
941 | self.indicMarginMenu.addAction(self.trUtf8('Show warning message'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
942 | self.__showFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
943 | self.marginMenuActs["ClearWarnings"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
944 | self.indicMarginMenu.addAction(self.trUtf8('Clear warnings'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
945 | self.clearFlakesWarnings) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
946 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
947 | self.marginMenuActs["NextCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
948 | self.indicMarginMenu.addAction(self.trUtf8('Next uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
949 | self.nextUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
950 | self.marginMenuActs["PreviousCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
951 | self.indicMarginMenu.addAction(self.trUtf8('Previous uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
952 | self.previousUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
953 | self.indicMarginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
954 | self.marginMenuActs["NextTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
955 | self.indicMarginMenu.addAction(self.trUtf8('Next task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
956 | self.nextTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
957 | self.marginMenuActs["PreviousTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
958 | self.indicMarginMenu.addAction(self.trUtf8('Previous task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
959 | self.previousTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
960 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
961 | self.connect(self.indicMarginMenu, SIGNAL('aboutToShow()'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
962 | self.__showContextMenuMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
963 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
964 | def __initContextMenuUnifiedMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
965 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
966 | 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
|
967 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
968 | self.marginMenu = QMenu() |
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 | self.marginMenu.addAction(self.trUtf8('Toggle bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
971 | self.menuToggleBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
972 | self.marginMenuActs["NextBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
973 | self.marginMenu.addAction(self.trUtf8('Next bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
974 | self.nextBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
975 | self.marginMenuActs["PreviousBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
976 | self.marginMenu.addAction(self.trUtf8('Previous bookmark'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
977 | self.previousBookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
978 | self.marginMenuActs["ClearBookmark"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
979 | self.marginMenu.addAction(self.trUtf8('Clear all bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
980 | self.clearBookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
981 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
982 | self.marginMenuActs["GotoSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
983 | self.marginMenu.addAction(self.trUtf8('Goto syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
984 | self.gotoSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
985 | self.marginMenuActs["ShowSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
986 | 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
|
987 | self.__showSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
988 | self.marginMenuActs["ClearSyntaxError"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
989 | self.marginMenu.addAction(self.trUtf8('Clear syntax error'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
990 | self.clearSyntaxError) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
991 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
992 | self.marginMenuActs["NextWarningMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
993 | self.marginMenu.addAction(self.trUtf8("Next warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
994 | self.nextFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
995 | self.marginMenuActs["PreviousWarningMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
996 | self.marginMenu.addAction(self.trUtf8("Previous warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
997 | self.previousFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
998 | self.marginMenuActs["ShowWarning"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
999 | self.marginMenu.addAction(self.trUtf8('Show warning message'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1000 | self.__showFlakesWarning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1001 | self.marginMenuActs["ClearWarnings"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1002 | self.marginMenu.addAction(self.trUtf8('Clear warnings'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1003 | self.clearFlakesWarnings) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1004 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1005 | self.marginMenuActs["Breakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1006 | self.marginMenu.addAction(self.trUtf8('Toggle breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1007 | self.menuToggleBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1008 | self.marginMenuActs["TempBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1009 | self.marginMenu.addAction(self.trUtf8('Toggle temporary breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1010 | self.__menuToggleTemporaryBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1011 | self.marginMenuActs["EditBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1012 | self.marginMenu.addAction(self.trUtf8('Edit breakpoint...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1013 | self.menuEditBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1014 | self.marginMenuActs["EnableBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1015 | self.marginMenu.addAction(self.trUtf8('Enable breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1016 | self.__menuToggleBreakpointEnabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1017 | self.marginMenuActs["NextBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1018 | self.marginMenu.addAction(self.trUtf8('Next breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1019 | self.menuNextBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1020 | self.marginMenuActs["PreviousBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1021 | self.marginMenu.addAction(self.trUtf8('Previous breakpoint'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1022 | self.menuPreviousBreakpoint) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1023 | self.marginMenuActs["ClearBreakpoint"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1024 | self.marginMenu.addAction(self.trUtf8('Clear all breakpoints'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1025 | self.__menuClearBreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1026 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1027 | self.marginMenuActs["NextCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1028 | self.marginMenu.addAction(self.trUtf8('Next uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1029 | self.nextUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1030 | self.marginMenuActs["PreviousCoverageMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1031 | self.marginMenu.addAction(self.trUtf8('Previous uncovered line'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1032 | self.previousUncovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1033 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1034 | self.marginMenuActs["NextTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1035 | self.marginMenu.addAction(self.trUtf8('Next task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1036 | self.nextTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1037 | self.marginMenuActs["PreviousTaskMarker"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1038 | self.marginMenu.addAction(self.trUtf8('Previous task'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1039 | self.previousTask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1040 | self.marginMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1041 | self.marginMenuActs["LMBbookmarks"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1042 | self.marginMenu.addAction(self.trUtf8('LMB toggles bookmarks'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1043 | self.__lmBbookmarks) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1044 | self.marginMenuActs["LMBbookmarks"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1045 | self.marginMenuActs["LMBbookmarks"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1046 | self.marginMenuActs["LMBbreakpoints"] = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1047 | self.marginMenu.addAction(self.trUtf8('LMB toggles breakpoints'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1048 | self.__lmBbreakpoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1049 | self.marginMenuActs["LMBbreakpoints"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1050 | self.marginMenuActs["LMBbreakpoints"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1051 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1052 | self.connect(self.marginMenu, SIGNAL('aboutToShow()'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1053 | self.__showContextMenuMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1054 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1055 | def __exportMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1056 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1057 | 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
|
1058 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1059 | @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
|
1060 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1061 | exporterFormat = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1062 | self.exportFile(exporterFormat) |
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 | def exportFile(self, exporterFormat): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1065 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1066 | Public method to export the file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1067 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1068 | @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
|
1069 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1070 | if exporterFormat: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1071 | exporter = Exporters.getExporter(exporterFormat, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1072 | if exporter: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1073 | exporter.exportSource() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1074 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1075 | QMessageBox.critical(self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1076 | self.trUtf8("Export source"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1077 | self.trUtf8("""<p>No exporter available for the """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1078 | """export format <b>{0}</b>. Aborting...</p>""")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1079 | .format(exporterFormat), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1080 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1081 | QMessageBox.Ok)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1082 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1083 | QMessageBox.critical(self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1084 | self.trUtf8("Export source"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1085 | self.trUtf8("""No export format given. Aborting..."""), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1086 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1087 | QMessageBox.Ok)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1088 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1089 | def __showContextMenuLanguages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1090 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1091 | 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
|
1092 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1093 | if self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1094 | self.pygmentsSelAct.setText( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1095 | self.trUtf8("Alternatives ({0})").format(self.getLanguage())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1096 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1097 | self.pygmentsSelAct.setText(self.trUtf8("Alternatives")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1098 | self.emit(SIGNAL("showMenu"), "Languages", self.languagesMenu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1099 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1100 | def __selectPygmentsLexer(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1101 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1102 | Private method to select a specific pygments lexer. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1103 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1104 | @return name of the selected pygments lexer (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1105 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1106 | from pygments.lexers import get_all_lexers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1107 | 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
|
1108 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1109 | lexerSel = lexerList.index(self.getLanguage()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1110 | except ValueError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1111 | lexerSel = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1112 | lexerName, ok = QInputDialog.getItem(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1113 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1114 | self.trUtf8("Pygments Lexer"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1115 | self.trUtf8("Select the Pygments lexer to apply."), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1116 | lexerList, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1117 | lexerSel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1118 | False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1119 | if ok and lexerName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1120 | return lexerName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1121 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1122 | return "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1123 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1124 | def __languageMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1125 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1126 | 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
|
1127 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1128 | @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
|
1129 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1130 | if act == self.noLanguageAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1131 | self.__resetLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1132 | elif act == self.pygmentsAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1133 | self.setLanguage("dummy.pygments") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1134 | elif act == self.pygmentsSelAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1135 | language = self.__selectPygmentsLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1136 | if language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1137 | self.setLanguage("dummy.pygments", pyname = language) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1138 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1139 | language = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1140 | if language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1141 | self.setLanguage(self.supportedLanguages[language][1]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1142 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1143 | def languageChanged(self, language, propagate = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1144 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1145 | Public slot handling a change of a connected editor's language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1146 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1147 | @param language language to be set (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1148 | @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
|
1149 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1150 | if language == '': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1151 | self.__resetLanguage(propagate = propagate) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1152 | elif language == "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1153 | self.setLanguage("dummy.pygments") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1154 | elif language.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1155 | pyname = language.split("|", 1)[1] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1156 | self.setLanguage("dummy.pygments", pyname = pyname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1157 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1158 | self.setLanguage(self.supportedLanguages[language][1], propagate = propagate) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1159 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1160 | def __resetLanguage(self, propagate = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1161 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1162 | Private method used to reset the language selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1163 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1164 | @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
|
1165 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1166 | if self.lexer_ is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1167 | (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
|
1168 | self.disconnect(self, SIGNAL("SCN_STYLENEEDED(int)"), self.__styleNeeded) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1169 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1170 | self.apiLanguage = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1171 | self.lexer_ = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1172 | self.__lexerReset = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1173 | self.setLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1174 | self.setMonospaced(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1175 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1176 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1177 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1178 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1179 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1180 | if not self.inLanguageChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1181 | self.inLanguageChanged = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1182 | self.emit(SIGNAL('languageChanged'), self.apiLanguage) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1183 | self.inLanguageChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1184 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1185 | def setLanguage(self, filename, initTextDisplay = True, propagate = True, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1186 | pyname = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1187 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1188 | Public method to set a lexer language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1189 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1190 | @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
|
1191 | @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
|
1192 | is required as well (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1193 | @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
|
1194 | @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
|
1195 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1196 | self.__lexerReset = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1197 | self.__bindLexer(filename, pyname = pyname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1198 | self.__bindCompleter(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1199 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1200 | self.__checkLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1201 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1202 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1203 | if initTextDisplay: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1204 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1205 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1206 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1207 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1208 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1209 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1210 | if not self.inLanguageChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1211 | self.inLanguageChanged = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1212 | self.emit(SIGNAL('languageChanged'), self.apiLanguage) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1213 | self.inLanguageChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1214 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1215 | def __checkLanguage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1216 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1217 | 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
|
1218 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1219 | if self.apiLanguage == "": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1220 | self.noLanguageAct.setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1221 | elif self.apiLanguage == "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1222 | self.pygmentsAct.setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1223 | elif self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1224 | act = self.languagesActGrp.checkedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1225 | if act: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1226 | act.setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1227 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1228 | self.supportedLanguages[self.apiLanguage][2].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1229 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1230 | def projectLexerAssociationsChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1231 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1232 | 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
|
1233 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1234 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1235 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1236 | def __showContextMenuEncodings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1237 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1238 | 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
|
1239 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1240 | self.emit(SIGNAL("showMenu"), "Encodings", self.encodingsMenu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1241 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1242 | def __encodingsMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1243 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1244 | 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
|
1245 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1246 | @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
|
1247 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1248 | encoding = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1249 | self.__encodingChanged("%s-selected" % encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1250 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1251 | def __checkEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1252 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1253 | 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
|
1254 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1255 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1256 | self.supportedEncodings[self.__normalizedEncoding()].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1257 | except (AttributeError, KeyError): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1258 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1259 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1260 | def __encodingChanged(self, encoding, propagate = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1261 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1262 | 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
|
1263 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1264 | @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
|
1265 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1266 | self.encoding = encoding |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1267 | self.__checkEncoding() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1268 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1269 | if not self.inEncodingChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1270 | self.inEncodingChanged = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1271 | self.emit(SIGNAL("encodingChanged"), self.encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1272 | self.inEncodingChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1273 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1274 | def __normalizedEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1275 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1276 | Private method to calculate the normalized encoding string. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1277 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1278 | @return normalized encoding (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1279 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1280 | return self.encoding.replace("-default", "")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1281 | .replace("-guessed", "")\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1282 | .replace("-selected", "") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1283 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1284 | def __showContextMenuEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1285 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1286 | 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
|
1287 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1288 | self.emit(SIGNAL("showMenu"), "Eol", self.eolMenu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1289 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1290 | def __eolMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1291 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1292 | 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
|
1293 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1294 | @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
|
1295 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1296 | eol = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1297 | self.setEolModeByEolString(eol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1298 | self.convertEols(self.eolMode()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1299 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1300 | def __checkEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1301 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1302 | 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
|
1303 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1304 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1305 | self.supportedEols[self.getLineSeparator()].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1306 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1307 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1308 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1309 | def __eolChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1310 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1311 | 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
|
1312 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1313 | self.__checkEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1314 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1315 | if not self.inEolChanged: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1316 | self.inEolChanged = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1317 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1318 | self.emit(SIGNAL("eolChanged"), eol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1319 | self.inEolChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1320 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1321 | def __bindLexer(self, filename, pyname = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1322 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1323 | 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
|
1324 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1325 | @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
|
1326 | @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
|
1327 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1328 | if self.lexer_ is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1329 | (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
|
1330 | self.disconnect(self, SIGNAL("SCN_STYLENEEDED(int)"), self.__styleNeeded) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1331 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1332 | language = "" |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
1333 | 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
|
1334 | 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
|
1335 | if not language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1336 | filename = os.path.basename(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1337 | language = Preferences.getEditorLexerAssoc(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1338 | if language.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1339 | pyname = language.split("|", 1)[1] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1340 | language = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1341 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1342 | self.lexer_ = Lexers.getLexer(language, self, pyname = pyname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1343 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1344 | self.setLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1345 | self.apiLanguage = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1346 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1347 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1348 | if pyname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1349 | self.apiLanguage = "Pygments|%s" % pyname |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1350 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1351 | self.apiLanguage = self.lexer_.language() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1352 | if self.apiLanguage == "POV": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1353 | self.apiLanguage = "Povray" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1354 | self.setLexer(self.lexer_) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1355 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1356 | 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
|
1357 | self.setStyleBits(self.lexer_.styleBitsNeeded()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1358 | self.connect(self, SIGNAL("SCN_STYLENEEDED(int)"), self.__styleNeeded) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1359 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1360 | # get the font for style 0 and set it as the default font |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1361 | key = 'Scintilla/%s/style0/font' % self.lexer_.language() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1362 | fdesc = Preferences.Prefs.settings.value(key) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1363 | if fdesc is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1364 | font = QFont(fdesc[0], int(fdesc[1])) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1365 | self.lexer_.setDefaultFont(font) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1366 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1367 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1368 | # now set the lexer properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1369 | self.lexer_.initProperties() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1370 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1371 | # initialize the lexer APIs settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1372 | api = self.vm.getAPIsManager().getAPIs(self.apiLanguage) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1373 | if api is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1374 | self.lexer_.setAPIs(api.getQsciAPIs()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1375 | self.acAPI = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1376 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1377 | self.acAPI = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1378 | self.emit(SIGNAL("autoCompletionAPIsAvailable"), self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1379 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1380 | def __styleNeeded(self, position): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1381 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1382 | 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
|
1383 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1384 | @param position end position, that needs styling (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1385 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1386 | self.lexer_.styleText(self.getEndStyled(), position) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1387 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1388 | def getLexer(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1389 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1390 | 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
|
1391 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1392 | @return the lexer object (Lexer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1393 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1394 | return self.lexer_ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1395 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1396 | def getLanguage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1397 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1398 | 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
|
1399 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1400 | @return language of the editor (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1401 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1402 | if self.apiLanguage == "Guessed" or self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1403 | return self.lexer_.name() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1404 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1405 | return self.apiLanguage |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1406 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1407 | def __bindCompleter(self, filename): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1408 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1409 | 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
|
1410 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1411 | @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
|
1412 | completer language (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1413 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1414 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1415 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1416 | self.completer = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1417 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1418 | filename = os.path.basename(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1419 | apiLanguage = Preferences.getEditorLexerAssoc(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1420 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1421 | self.completer = TypingCompleters.getCompleter(apiLanguage, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1422 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1423 | def getCompleter(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1424 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1425 | 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
|
1426 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1427 | @return the completer object (CompleterBase) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1428 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1429 | return self.completer |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1430 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1431 | def __modificationChanged(self, m): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1432 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1433 | Private slot to handle the modificationChanged signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1434 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1435 | It emits the signal modificationStatusChanged with parameters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1436 | m and self. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1437 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1438 | @param m modification status |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1439 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1440 | 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
|
1441 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1442 | if Preferences.getEditor("AutoCheckSyntax"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1443 | self.clearSyntaxError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1444 | self.emit(SIGNAL('modificationStatusChanged'), m, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1445 | self.emit(SIGNAL('undoAvailable'), self.isUndoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1446 | self.emit(SIGNAL('redoAvailable'), self.isRedoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1447 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1448 | def __cursorPositionChanged(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1449 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1450 | Private slot to handle the cursorPositionChanged signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1451 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1452 | It emits the signal cursorChanged with parameters fileName, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1453 | line and pos. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1454 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1455 | @param line line number of the cursor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1456 | @param index position in line of the cursor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1457 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1458 | self.emit(SIGNAL('cursorChanged'), self.fileName, line+1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1459 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1460 | if Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1461 | self.__markOccurrencesTimer.stop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1462 | self.__markOccurrencesTimer.start() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1463 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1464 | if self.spell is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1465 | # do spell checking |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1466 | doSpelling = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1467 | if self.lastLine == line: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1468 | start, end = self.getWordBoundaries(line, index, useWordChars = False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1469 | if start <= self.lastIndex and self.lastIndex <= end: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1470 | doSpelling = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1471 | if doSpelling: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1472 | pos = self.positionFromLineIndex(self.lastLine, self.lastIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1473 | self.spell.checkWord(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1474 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1475 | self.lastLine = line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1476 | self.lastIndex = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1477 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1478 | def __modificationReadOnly(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1479 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1480 | Private slot to handle the modificationAttempted signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1481 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1482 | QMessageBox.warning(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1483 | self.trUtf8("Modification of Read Only file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1484 | 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
|
1485 | """Please save to a different file first.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1486 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1487 | def setNoName(self, noName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1488 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1489 | 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
|
1490 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1491 | @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
|
1492 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1493 | self.noName = noName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1494 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1495 | def getNoName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1496 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1497 | 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
|
1498 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1499 | @return display string for this unnamed editor (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1500 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1501 | return self.noName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1502 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1503 | def getFileName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1504 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1505 | 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
|
1506 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1507 | @return filename of the displayed file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1508 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1509 | return self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1510 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1511 | def getFileType(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1512 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1513 | 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
|
1514 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1515 | @return type of the displayed file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1516 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1517 | return self.filetype |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1518 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1519 | def getEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1520 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1521 | Public method to return the current encoding. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1522 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1523 | @return current encoding (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1524 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1525 | return self.encoding |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1526 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1527 | def getFolds(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1528 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1529 | 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
|
1530 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1531 | @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
|
1532 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1533 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1534 | folds = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1535 | maxline = self.lines() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1536 | while line < maxline: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1537 | 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
|
1538 | folds.append(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1539 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1540 | return folds |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1541 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1542 | def isPyFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1543 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1544 | Public method to return a flag indicating a Python file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1545 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1546 | @return flag indicating a Python file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1547 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1548 | return self.filetype == "Python" or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1549 | (self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1550 | 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
|
1551 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1552 | def isPy3File(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1553 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1554 | 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
|
1555 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1556 | @return flag indicating a Python3 file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1557 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1558 | return self.filetype == "Python3" or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1559 | (self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1560 | 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
|
1561 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1562 | def isRubyFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1563 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1564 | 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
|
1565 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1566 | @return flag indicating a Ruby file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1567 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1568 | return self.filetype == "Ruby" or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1569 | (self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1570 | 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
|
1571 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1572 | def highlightVisible(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1573 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1574 | 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
|
1575 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1576 | if self.lastHighlight is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1577 | lineno = self.markerLine(self.lastHighlight) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1578 | self.ensureVisible(lineno+1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1579 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1580 | 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
|
1581 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1582 | 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
|
1583 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1584 | @param line line number to highlight (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1585 | @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
|
1586 | @param syntaxError flag indicating a syntax error (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1587 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1588 | if line is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1589 | self.lastHighlight = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1590 | if self.lastErrorMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1591 | self.markerDeleteHandle(self.lastErrorMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1592 | self.lastErrorMarker = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1593 | if self.lastCurrMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1594 | self.markerDeleteHandle(self.lastCurrMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1595 | self.lastCurrMarker = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1596 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1597 | if error: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1598 | if self.lastErrorMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1599 | self.markerDeleteHandle(self.lastErrorMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1600 | self.lastErrorMarker = self.markerAdd(line-1, self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1601 | self.lastHighlight = self.lastErrorMarker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1602 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1603 | if self.lastCurrMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1604 | self.markerDeleteHandle(self.lastCurrMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1605 | self.lastCurrMarker = self.markerAdd(line-1, self.currentline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1606 | self.lastHighlight = self.lastCurrMarker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1607 | self.setCursorPosition(line-1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1608 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1609 | def getHighlightPosition(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1610 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1611 | 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
|
1612 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1613 | @return line number of the highlight bar (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1614 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1615 | if self.lastHighlight is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1616 | return self.markerLine(self.lastHighlight) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1617 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1618 | return 1 |
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 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1621 | ## Breakpoint handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1624 | def __linesChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1625 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1626 | Private method to track text changes. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1627 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1628 | 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
|
1629 | update the breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1630 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1631 | if self.breaks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1632 | bps = [] # list of breakpoints |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
1633 | 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
|
1634 | line = self.markerLine(handle) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1635 | bps.append((ln, line, (cond, temp, enabled, ignorecount))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1636 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1637 | self.breaks = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1638 | for bp in bps: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1639 | index = self.breakpointModel.getBreakPointIndex(self.fileName, bp[0]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1640 | self.breakpointModel.setBreakPointByIndex(index, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1641 | self.fileName, bp[1], bp[2]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1642 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1643 | def __restoreBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1644 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1645 | Private method to restore the breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1646 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1647 | for handle in list(self.breaks.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1648 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1649 | self.__addBreakPoints(QModelIndex(), 0, self.breakpointModel.rowCount() - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1650 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1651 | def __deleteBreakPoints(self, parentIndex, start, end): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1652 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1653 | Private slot to delete breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1654 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1655 | @param parentIndex index of parent item (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1656 | @param start start row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1657 | @param end end row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1658 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1659 | for row in range(start, end + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1660 | index = self.breakpointModel.index(row, 0, parentIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1661 | fn, lineno = self.breakpointModel.getBreakPointByIndex(index)[0:2] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1662 | if fn == self.fileName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1663 | self.clearBreakpoint(lineno) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1664 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1665 | def __changeBreakPoints(self, startIndex, endIndex): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1666 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1667 | Private slot to set changed breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1668 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1669 | @param indexes indexes of changed breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1670 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1671 | self.__addBreakPoints(QModelIndex(), startIndex.row(), endIndex.row()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1672 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1673 | def __breakPointDataAboutToBeChanged(self, startIndex, endIndex): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1674 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1675 | 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
|
1676 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1677 | @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
|
1678 | @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
|
1679 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1680 | self.__deleteBreakPoints(QModelIndex(), startIndex.row(), endIndex.row()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1681 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1682 | def __addBreakPoints(self, parentIndex, start, end): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1683 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1684 | Private slot to add breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1685 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1686 | @param parentIndex index of parent item (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1687 | @param start start row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1688 | @param end end row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1689 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1690 | for row in range(start, end + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1691 | index = self.breakpointModel.index(row, 0, parentIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1692 | fn, line, cond, temp, enabled, ignorecount = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1693 | self.breakpointModel.getBreakPointByIndex(index)[:6] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1694 | if fn == self.fileName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1695 | self.newBreakpointWithProperties(line, (cond, temp, enabled, ignorecount)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1696 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1697 | def clearBreakpoint(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1698 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1699 | Public method to clear a breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1700 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1701 | 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
|
1702 | 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
|
1703 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1704 | @param line linenumber of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1705 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1706 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1707 | if self.markerLine(handle) == line-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1708 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1709 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1710 | # not found, simply ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1711 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1712 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1713 | del self.breaks[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1714 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1715 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1716 | def newBreakpointWithProperties(self, line, properties): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1717 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1718 | 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
|
1719 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1720 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1721 | @param properties properties for the breakpoint (tuple) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1722 | (condition, temporary flag, enabled flag, ignore count) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1723 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1724 | if not properties[2]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1725 | marker = self.dbreakpoint |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1726 | elif properties[0]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1727 | 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
|
1728 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1729 | 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
|
1730 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1731 | handle = self.markerAdd(line-1, marker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1732 | self.breaks[handle] = (line,) + properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1733 | self.emit(SIGNAL('breakpointToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1734 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1735 | def __toggleBreakpoint(self, line, temporary = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1736 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1737 | Private method to toggle a breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1738 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1739 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1740 | @param temporary flag indicating a temporary breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1741 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1742 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1743 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1744 | # 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
|
1745 | index = self.breakpointModel.getBreakPointIndex(self.fileName, line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1746 | if Preferences.getDebugger("ThreeStateBreakPoints") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1747 | not self.breakpointModel.isBreakPointTemporaryByIndex(index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1748 | self.breakpointModel.deleteBreakPointByIndex(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1749 | self.__addBreakPoint(line, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1750 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1751 | self.breakpointModel.deleteBreakPointByIndex(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1752 | self.emit(SIGNAL('breakpointToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1753 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1754 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1755 | self.__addBreakPoint(line, temporary) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1756 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1757 | def __addBreakPoint(self, line, temporary): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1758 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1759 | Private method to add a new breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1760 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1761 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1762 | @param temporary flag indicating a temporary breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1763 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1764 | if self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1765 | (self.isPyFile() or self.isPy3File() or self.isRubyFile()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1766 | self.breakpointModel.addBreakPoint(self.fileName, line, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1767 | ('', temporary, True, 0)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1768 | self.emit(SIGNAL('breakpointToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1769 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1770 | def __toggleBreakpointEnabled(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1771 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1772 | Private method to toggle a breakpoints enabled status. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1773 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1774 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1775 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1776 | 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
|
1777 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1778 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1779 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1780 | # no breakpoint found on that line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1781 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1782 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1783 | index = self.breakpointModel.getBreakPointIndex(self.fileName, line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1784 | self.breakpointModel.setBreakPointEnabledByIndex(index, not enabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1785 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1786 | def curLineHasBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1787 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1788 | Public method to 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
|
1789 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1790 | @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
|
1791 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1792 | line, _ = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1793 | return self.markersAtLine(line) & self.breakpointMask != 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1794 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1795 | def hasBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1796 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1797 | 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
|
1798 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1799 | @return flag indicating the presence of breakpoints (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1800 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1801 | return len(self.breaks) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1802 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1803 | def __menuToggleTemporaryBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1804 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1805 | 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
|
1806 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1807 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1808 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1809 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1810 | self.__toggleBreakpoint(self.line, 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1811 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1812 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1813 | def menuToggleBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1814 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1815 | 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
|
1816 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1817 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1818 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1819 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1820 | self.__toggleBreakpoint(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1821 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1822 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1823 | def __menuToggleBreakpointEnabled(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1824 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1825 | 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
|
1826 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1827 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1828 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1829 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1830 | self.__toggleBreakpointEnabled(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1831 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1832 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1833 | def menuEditBreakpoint(self, line = None): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1834 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1835 | 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
|
1836 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1837 | @param line linenumber of the breakpoint to edit |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1838 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1839 | if line is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1840 | self.line = line - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1841 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1842 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1843 | found = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1844 | 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
|
1845 | if self.markerLine(handle) == self.line: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1846 | found = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1847 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1848 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1849 | if found: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1850 | index = self.breakpointModel.getBreakPointIndex(self.fileName, ln) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1851 | if not index.isValid(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1852 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1853 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1854 | dlg = EditBreakpointDialog((self.fileName, ln), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1855 | (cond, temp, enabled, ignorecount), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1856 | self.condHistory, self, modal = True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1857 | if dlg.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1858 | cond, temp, enabled, ignorecount = dlg.getData() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1859 | self.breakpointModel.setBreakPointByIndex(index, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1860 | self.fileName, ln, (cond, temp, enabled, ignorecount)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1861 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1862 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1863 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1864 | def menuNextBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1865 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1866 | 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
|
1867 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1868 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1869 | if line == self.lines()-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1870 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1871 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1872 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1873 | bpline = self.markerFindNext(line, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1874 | if bpline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1875 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1876 | bpline = self.markerFindNext(0, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1877 | if bpline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1878 | self.setCursorPosition(bpline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1879 | self.ensureLineVisible(bpline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1880 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1881 | def menuPreviousBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1882 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1883 | 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
|
1884 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1885 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1886 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1887 | line = self.lines()-1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1888 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1889 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1890 | bpline = self.markerFindPrevious(line, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1891 | if bpline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1892 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1893 | bpline = self.markerFindPrevious(self.lines()-1, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1894 | if bpline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1895 | self.setCursorPosition(bpline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1896 | self.ensureLineVisible(bpline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1897 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1898 | def __menuClearBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1899 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1900 | 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
|
1901 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1902 | self.__clearBreakpoints(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1903 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1904 | def __clearBreakpoints(self, fileName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1905 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1906 | Private slot to clear all breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1907 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1908 | idxList = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1909 | for handle, (ln, _, _, _, _) in list(self.breaks.items()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1910 | index = self.breakpointModel.getBreakPointIndex(fileName, ln) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1911 | if index.isValid(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1912 | idxList.append(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1913 | if idxList: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1914 | self.breakpointModel.deleteBreakPoints(idxList) |
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 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1917 | ## Bookmark handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1920 | def toggleBookmark(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1921 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1922 | Public method to toggle a bookmark. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1923 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1924 | @param line line number of the bookmark (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1925 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1926 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1927 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1928 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1929 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1930 | # set a new bookmark |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1931 | handle = self.markerAdd(line - 1, self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1932 | self.bookmarks.append(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1933 | self.emit(SIGNAL('bookmarkToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1934 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1935 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1936 | self.bookmarks.remove(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1937 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1938 | self.emit(SIGNAL('bookmarkToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1939 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1940 | def getBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1941 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1942 | Public method to retrieve the bookmarks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1943 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1944 | @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
|
1945 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1946 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1947 | bmlist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1948 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1949 | bmlist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1950 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1951 | bmlist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1952 | return bmlist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1953 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1954 | def hasBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1955 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1956 | 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
|
1957 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1958 | @return flag indicating the presence of bookmarks (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1959 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1960 | return len(self.bookmarks) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1961 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1962 | def menuToggleBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1963 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1964 | 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
|
1965 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1966 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1967 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1968 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1969 | self.toggleBookmark(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1970 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1971 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1972 | def nextBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1973 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1974 | 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
|
1975 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1976 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1977 | if line == self.lines()-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1978 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1979 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1980 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1981 | bmline = self.markerFindNext(line, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1982 | if bmline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1983 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1984 | bmline = self.markerFindNext(0, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1985 | if bmline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1986 | self.setCursorPosition(bmline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1987 | self.ensureLineVisible(bmline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1988 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1989 | def previousBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1990 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1991 | 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
|
1992 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1993 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1994 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1995 | line = self.lines()-1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1996 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1997 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1998 | bmline = self.markerFindPrevious(line, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1999 | if bmline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2000 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2001 | 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
|
2002 | if bmline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2003 | self.setCursorPosition(bmline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2004 | self.ensureLineVisible(bmline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2005 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2006 | def clearBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2007 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2008 | 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
|
2009 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2010 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2011 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2012 | self.bookmarks = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2013 | self.emit(SIGNAL('bookmarkToggled'), self) |
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 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2016 | ## Printing methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2019 | def printFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2020 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2021 | Public slot to print the text. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2022 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2023 | printer = Printer(mode = QPrinter.HighResolution) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2024 | sb = e5App().getObject("UserInterface").statusBar() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2025 | printDialog = QPrintDialog(printer, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2026 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2027 | printDialog.addEnabledOption(QAbstractPrintDialog.PrintSelection) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2028 | if printDialog.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2029 | sb.showMessage(self.trUtf8('Printing...')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2030 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2031 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2032 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2033 | printer.setDocName(os.path.basename(fn)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2034 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2035 | printer.setDocName(self.noName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2036 | if printDialog.printRange() == QAbstractPrintDialog.Selection: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2037 | # get the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2038 | fromLine, fromIndex, toLine, toIndex = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2039 | if toIndex == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2040 | toLine -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2041 | # 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
|
2042 | res = printer.printRange(self, fromLine, toLine-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2043 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2044 | res = printer.printRange(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2045 | if res: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2046 | sb.showMessage(self.trUtf8('Printing completed'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2047 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2048 | sb.showMessage(self.trUtf8('Error while printing'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2049 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2050 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2051 | sb.showMessage(self.trUtf8('Printing aborted'), 2000) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2052 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2053 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2054 | def printPreviewFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2055 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2056 | 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
|
2057 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2058 | from PyQt4.QtGui import QPrintPreviewDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2059 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2060 | printer = Printer(mode = QPrinter.HighResolution) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2061 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2062 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2063 | printer.setDocName(os.path.basename(fn)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2064 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2065 | printer.setDocName(self.noName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2066 | preview = QPrintPreviewDialog(printer, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2067 | self.connect(preview, SIGNAL("paintRequested(QPrinter*)"), self.__printPreview) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2068 | preview.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2069 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2070 | def __printPreview(self, printer): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2071 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2072 | Private slot to generate a print preview. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2073 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2074 | @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
|
2075 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2076 | printer.printRange(self) |
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 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2079 | ## Task handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2082 | def hasTaskMarkers(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2083 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2084 | 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
|
2085 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2086 | @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
|
2087 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2088 | return self.__hasTaskMarkers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2089 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2090 | def nextTask(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2091 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2092 | 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
|
2093 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2094 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2095 | if line == self.lines()-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2096 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2097 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2098 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2099 | taskline = self.markerFindNext(line, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2100 | if taskline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2101 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2102 | taskline = self.markerFindNext(0, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2103 | if taskline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2104 | self.setCursorPosition(taskline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2105 | self.ensureLineVisible(taskline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2106 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2107 | def previousTask(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2108 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2109 | 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
|
2110 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2111 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2112 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2113 | line = self.lines()-1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2114 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2115 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2116 | taskline = self.markerFindPrevious(line, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2117 | if taskline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2118 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2119 | 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
|
2120 | if taskline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2121 | self.setCursorPosition(taskline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2122 | self.ensureLineVisible(taskline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2123 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2124 | def extractTasks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2125 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2126 | Public slot to extract all tasks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2127 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2128 | todoMarkers = Preferences.getTasks("TasksMarkers").split() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2129 | bugfixMarkers = Preferences.getTasks("TasksMarkersBugfix").split() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2130 | txtList = self.text().split(self.getLineSeparator()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2131 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2132 | # clear all task markers and tasks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2133 | self.markerDeleteAll(self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2134 | self.taskViewer.clearFileTasks(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2135 | self.__hasTaskMarkers = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2136 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2137 | # now search tasks and record them |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2138 | lineIndex = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2139 | for line in txtList: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2140 | lineIndex += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2141 | shouldContinue = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2142 | # normal tasks first |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2143 | for tasksMarker in todoMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2144 | index = line.find(tasksMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2145 | if index > -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2146 | task = line[index:] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2147 | self.markerAdd(lineIndex, self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2148 | 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
|
2149 | self.__hasTaskMarkers = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2150 | shouldContinue = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2151 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2152 | if shouldContinue: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2153 | continue |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2154 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2155 | # bugfix tasks second |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2156 | for tasksMarker in bugfixMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2157 | index = line.find(tasksMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2158 | if index > -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2159 | task = line[index:] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2160 | self.markerAdd(lineIndex, self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2161 | 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
|
2162 | self.__hasTaskMarkers = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2163 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2164 | self.emit(SIGNAL('taskMarkersUpdated'), self) |
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 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2167 | ## File handling methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2170 | def checkDirty(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2171 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2172 | 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
|
2173 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2174 | @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
|
2175 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2176 | if self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2177 | fn = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2178 | if fn is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2179 | fn = self.noName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2180 | res = QMessageBox.warning(self.vm, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2181 | self.trUtf8("File Modified"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2182 | 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
|
2183 | .format(fn), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2184 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2185 | QMessageBox.Abort | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2186 | QMessageBox.Discard | \ |
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 | QMessageBox.Save) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2189 | if res == QMessageBox.Save: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2190 | ok, newName = self.saveFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2191 | if ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2192 | self.vm.setEditorName(self, newName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2193 | return ok |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2194 | elif res == QMessageBox.Abort or res == QMessageBox.Cancel: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2195 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2196 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2197 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2198 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2199 | def revertToUnmodified(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2200 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2201 | 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
|
2202 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2203 | undo_ = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2204 | while self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2205 | if undo_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2206 | # try undo first |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2207 | if self.isUndoAvailable(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2208 | self.undo() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2209 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2210 | undo_ = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2211 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2212 | # try redo next |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2213 | if self.isRedoAvailable(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2214 | self.redo() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2215 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2216 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2217 | # Couldn't find the unmodified state |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2218 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2219 | def readFile(self, fn, createIt = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2220 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2221 | 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
|
2222 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2223 | @param fn filename to read from (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2224 | @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
|
2225 | one doesn't exist (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2226 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2227 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2228 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2229 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2230 | if createIt and not os.path.exists(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2231 | f = open(fn, "w") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2232 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2233 | txt, self.encoding = Utilities.readEncodedFile(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2234 | except (UnicodeDecodeError, IOError) as why: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2235 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2236 | QMessageBox.critical(self.vm, self.trUtf8('Open File'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2237 | 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
|
2238 | '<p>Reason: {1}</p>') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2239 | .format(fn, str(why))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2240 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2241 | raise |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2242 | fileEol = self.detectEolString(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2243 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2244 | modified = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2245 | if (not Preferences.getEditor("TabForIndentation")) and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2246 | Preferences.getEditor("ConvertTabsOnLoad") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2247 | not (self.lexer_ and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2248 | self.lexer_.alwaysKeepTabs()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2249 | txtExpanded = txt.expandtabs(Preferences.getEditor("TabWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2250 | if txtExpanded != txt: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2251 | modified = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2252 | txt = txtExpanded |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2253 | del txtExpanded |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2254 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2255 | self.setText(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2256 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2257 | # perform automatic eol conversion |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2258 | if Preferences.getEditor("AutomaticEOLConversion"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2259 | self.convertEols(self.eolMode()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2260 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2261 | self.setEolModeByEolString(fileEol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2262 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2263 | self.extractTasks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2264 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2265 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2266 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2267 | self.setModified(modified) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2268 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2269 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2270 | def __removeTrailingWhitespace(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2271 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2272 | Private method to remove trailing whitespace. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2273 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2274 | 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
|
2275 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2276 | 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
|
2277 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2278 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2279 | self.replaceTarget("") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2280 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2281 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2282 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2283 | def writeFile(self, fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2284 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2285 | 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
|
2286 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2287 | @param fn filename to write to (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2288 | @return flag indicating success (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2289 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2290 | if Preferences.getEditor("StripTrailingWhitespace"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2291 | self.__removeTrailingWhitespace() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2292 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2293 | txt = self.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2294 | # work around glitch in scintilla: always make sure, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2295 | # that the last line is terminated properly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2296 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2297 | if eol: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2298 | if len(txt) >= len(eol): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2299 | if txt[-len(eol):] != eol: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2300 | txt += eol |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2301 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2302 | txt += eol |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2303 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2304 | # 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
|
2305 | createBackup = Preferences.getEditor("CreateBackupFile") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2306 | if createBackup: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2307 | if os.path.islink(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2308 | fn = os.path.realpath(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2309 | bfn = '%s~' % fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2310 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2311 | permissions = os.stat(fn).st_mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2312 | perms_valid = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2313 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2314 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2315 | perms_valid = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2316 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2317 | os.remove(bfn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2318 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2319 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2320 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2321 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2322 | os.rename(fn, bfn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2323 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2324 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2325 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2326 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2327 | # now write text to the file fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2328 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2329 | self.encoding = Utilities.writeEncodedFile(fn, txt, self.encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2330 | if createBackup and perms_valid: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2331 | os.chmod(fn, permissions) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2332 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2333 | except (IOError, Utilities.CodingError, UnicodeError) as why: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2334 | QMessageBox.critical(self, self.trUtf8('Save File'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2335 | 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
|
2336 | 'Reason: {1}</p>') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2337 | .format(fn, str(why))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2338 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2339 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2340 | def saveFile(self, saveas = False, path = None): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2341 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2342 | 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
|
2343 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2344 | @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
|
2345 | @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
|
2346 | @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
|
2347 | the name of the saved file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2348 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2349 | if not saveas and not self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2350 | 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
|
2351 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2352 | newName = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2353 | if saveas or self.fileName is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2354 | saveas = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2355 | 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
|
2356 | path = os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2357 | if path is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2358 | path = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2359 | defaultFilter = Preferences.getEditor("DefaultSaveFilter") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2360 | fn, selectedFilter = QFileDialog.getSaveFileNameAndFilter( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2361 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2362 | self.trUtf8("Save File"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2363 | path, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2364 | Lexers.getSaveFileFiltersList(True, True), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2365 | defaultFilter, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2366 | QFileDialog.Options(QFileDialog.DontConfirmOverwrite)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2367 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2368 | if fn: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2369 | ext = QFileInfo(fn).suffix() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2370 | if not ext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2371 | ex = selectedFilter.split("(*")[1].split(")")[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2372 | if ex: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2373 | fn += ex |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2374 | if QFileInfo(fn).exists(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2375 | res = QMessageBox.warning(self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2376 | self.trUtf8("Save File"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2377 | self.trUtf8("<p>The file <b>{0}</b> already exists.</p>") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2378 | .format(fn), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2379 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2380 | QMessageBox.Abort | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2381 | QMessageBox.Save), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2382 | QMessageBox.Abort) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2383 | if res == QMessageBox.Abort or res == QMessageBox.Cancel: |
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 | fn = Utilities.toNativeSeparators(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2386 | newName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2387 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2388 | return (False, None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2389 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2390 | fn = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2391 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2392 | self.emit(SIGNAL('editorAboutToBeSaved'), self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2393 | if self.writeFile(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2394 | if saveas: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2395 | self.__clearBreakpoints(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2396 | self.fileName = fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2397 | self.setModified(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2398 | self.setReadOnly(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2399 | self.setWindowTitle(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2400 | 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
|
2401 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2402 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2403 | if saveas: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2404 | self.isResourcesFile = self.fileName.endswith(".qrc") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2405 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2406 | self.emit(SIGNAL('editorRenamed'), self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2407 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2408 | if newName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2409 | self.vm.addToRecentList(newName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2410 | self.emit(SIGNAL('editorSaved'), self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2411 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2412 | self.extractTasks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2413 | return (True, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2414 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2415 | self.lastModified = QFileInfo(fn).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2416 | return (False, None) |
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 | def saveFileAs(self, path = None): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2419 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2420 | 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
|
2421 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2422 | @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
|
2423 | @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
|
2424 | the name of the saved file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2425 | """ |
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 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2455 | self.emit(SIGNAL('editorRenamed'), self.fileName) |
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: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2550 | regExp = QRegExp('[^%s]' % re.escape(wc), cs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2551 | start = regExp.lastIndexIn(text, index) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2552 | end = regExp.indexIn(text, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2553 | if start == end + 1 and index > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2554 | # we are on a word boundary, try again |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2555 | start = regExp.lastIndexIn(text, index - 1) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2556 | if start == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2557 | start = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2558 | if end == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2559 | end = len(text) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2560 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2561 | return (start, end) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2562 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2563 | 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
|
2564 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2565 | 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
|
2566 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2567 | @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
|
2568 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2569 | @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
|
2570 | @keyparam useWordChars flag indicating to use the wordCharacters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2571 | method (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2572 | @return the word at that position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2573 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2574 | start, end = self.getWordBoundaries(line, index, useWordChars) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2575 | if direction == 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2576 | end = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2577 | elif direction == 2: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2578 | start = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2579 | if end > start: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2580 | text = self.text(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2581 | word = text[start:end] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2582 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2583 | word = '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2584 | return word |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2585 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2586 | def getWordLeft(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2587 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2588 | 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
|
2589 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2590 | @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
|
2591 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2592 | @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
|
2593 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2594 | return self.getWord(line, index, 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2595 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2596 | def getWordRight(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2597 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2598 | 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
|
2599 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2600 | @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
|
2601 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2602 | @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
|
2603 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2604 | return self.getWord(line, index, 2) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2605 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2606 | def getCurrentWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2607 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2608 | 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
|
2609 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2610 | @return the word at that current position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2611 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2612 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2613 | return self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2614 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2615 | def selectWord(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2616 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2617 | Public method to select the word at a position. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2618 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2619 | @param line number of line to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2620 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2621 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2622 | start, end = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2623 | self.setSelection(line, start, line, end) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2624 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2625 | def selectCurrentWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2626 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2627 | Public method to select the current word. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2628 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2629 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2630 | self.selectWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2631 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2632 | def __getCharacter(self, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2633 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2634 | 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
|
2635 | in the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2636 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2637 | @param pos position to get character at (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2638 | @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
|
2639 | the next position (i.e. pos - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2640 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2641 | if pos <= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2642 | return "", pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2643 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2644 | pos = self.positionBefore(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2645 | ch = self.charAt(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2646 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2647 | # 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
|
2648 | if ch == '\n' or ch == '\r': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2649 | return "", pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2650 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2651 | return ch, pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2652 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2653 | def getSearchText(self, selectionOnly = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2654 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2655 | 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
|
2656 | search operation. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2657 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2658 | @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
|
2659 | returned (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2660 | @return selection or current word (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2661 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2662 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2663 | text = self.selectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2664 | if '\r' in text or '\n' in text: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2665 | # 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
|
2666 | # unlikely to be the expression to search for |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2667 | return '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2668 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2669 | return text |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2670 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2671 | if not selectionOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2672 | # 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
|
2673 | return self.getCurrentWord() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2674 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2675 | return '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2676 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2677 | def setSearchIndicator(self, startPos, indicLength): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2678 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2679 | 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
|
2680 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2681 | @param startPos start position of the indicator (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2682 | @param indicLength length of the indicator (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2683 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2684 | self.setIndicatorRange(self.searchIndicator, startPos, indicLength) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2685 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2686 | def clearSearchIndicators(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2687 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2688 | Public method to clear all search indicators. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2689 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2690 | self.clearAllIndicators(self.searchIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2691 | self.__markedText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2692 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2693 | def __markOccurrences(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2694 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2695 | 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
|
2696 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2697 | word = self.getCurrentWord() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2698 | if not word: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2699 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2700 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2701 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2702 | if self.__markedText == word: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2703 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2704 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2705 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2706 | 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
|
2707 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2708 | tgtPos, tgtLen = self.getFoundTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2709 | self.setSearchIndicator(tgtPos, tgtLen) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2710 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2711 | self.__markedText = word |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2712 | |
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 | ## Comment handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2715 | ############################################################################ |
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 | def commentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2718 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2719 | Public slot to comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2720 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2721 | 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
|
2722 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2723 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2724 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2725 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2726 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2727 | self.insertAt(self.lexer_.commentStr(), line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2728 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2729 | 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
|
2730 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2731 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2732 | def uncommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2733 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2734 | Public slot to uncomment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2735 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2736 | 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
|
2737 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2738 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2739 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2740 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2741 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2742 | # 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
|
2743 | # by our comment...() slots |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2744 | if not self.text(line).strip().startswith(commentStr): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2745 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2746 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2747 | # now remove the comment string |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2748 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2749 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2750 | self.setSelection(line, 0, line, len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2751 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2752 | self.setSelection(line, self.indentation(line), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2753 | line, self.indentation(line) + len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2754 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2755 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2756 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2757 | def commentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2758 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2759 | Public slot to comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2760 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2761 | 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
|
2762 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2763 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2764 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2765 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2766 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2767 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2768 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2769 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2770 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2771 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2772 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2773 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2774 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2775 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2776 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2777 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2778 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2779 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2780 | self.insertAt(commentStr, line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2781 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2782 | self.insertAt(commentStr, line, self.indentation(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2783 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2784 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2785 | self.setSelection(lineFrom, 0, endLine + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2786 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2787 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2788 | def uncommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2789 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2790 | Public slot to uncomment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2791 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2792 | 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
|
2793 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2794 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2795 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2796 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2797 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2798 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2799 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2800 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2801 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2802 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2803 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2804 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2805 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2806 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2807 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2808 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2809 | for line in range(lineFrom, endLine+1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2810 | # 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
|
2811 | # by our comment...() slots |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2812 | if not self.text(line).strip().startswith(commentStr): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2813 | continue |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2814 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2815 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2816 | self.setSelection(line, 0, line, len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2817 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2818 | self.setSelection(line, self.indentation(line), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2819 | line, self.indentation(line) + len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2820 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2821 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2822 | # adjust selection start |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2823 | if line == lineFrom: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2824 | indexFrom -= len(commentStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2825 | if indexFrom < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2826 | indexFrom = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2827 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2828 | # adjust selection end |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2829 | if line == lineTo: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2830 | indexTo -= len(commentStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2831 | if indexTo < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2832 | indexTo = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2833 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2834 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2835 | self.setSelection(lineFrom, indexFrom, lineTo, indexTo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2836 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2837 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2838 | def commentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2839 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2840 | 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
|
2841 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2842 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2843 | self.commentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2844 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2845 | self.commentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2846 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2847 | def uncommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2848 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2849 | 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
|
2850 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2851 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2852 | self.uncommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2853 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2854 | self.uncommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2855 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2856 | def streamCommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2857 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2858 | Public slot to stream comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2859 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2860 | 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
|
2861 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2862 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2863 | commentStr = self.lexer_.streamCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2864 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2865 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2866 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2867 | self.insertAt(commentStr['end'], line, self.lineLength(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2868 | self.insertAt(commentStr['start'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2869 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2870 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2871 | def streamCommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2872 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2873 | Public slot to comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2874 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2875 | 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
|
2876 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2877 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2878 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2879 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2880 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2881 | commentStr = self.lexer_.streamCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2882 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2883 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2884 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2885 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2886 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2887 | endIndex = self.lineLength(endLine) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2888 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2889 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2890 | endIndex = indexTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2891 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2892 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2893 | self.insertAt(commentStr['end'], endLine, endIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2894 | self.insertAt(commentStr['start'], lineFrom, indexFrom) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2895 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2896 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2897 | if indexTo > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2898 | indexTo += len(commentStr['end']) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2899 | if lineFrom == endLine: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2900 | indexTo += len(commentStr['start']) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2901 | self.setSelection(lineFrom, indexFrom, lineTo, indexTo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2902 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2903 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2904 | def streamCommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2905 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2906 | 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
|
2907 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2908 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2909 | self.streamCommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2910 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2911 | self.streamCommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2912 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2913 | def boxCommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2914 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2915 | Public slot to box comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2916 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2917 | 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
|
2918 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2919 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2920 | commentStr = self.lexer_.boxCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2921 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2922 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2923 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2924 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2925 | self.insertAt(eol, line, self.lineLength(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2926 | self.insertAt(commentStr['end'], line + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2927 | self.insertAt(commentStr['middle'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2928 | self.insertAt(eol, line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2929 | self.insertAt(commentStr['start'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2930 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2931 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2932 | def boxCommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2933 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2934 | Public slot to box comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2935 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2936 | 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
|
2937 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2938 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2939 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2940 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2941 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2942 | commentStr = self.lexer_.boxCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2943 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2944 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2945 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2946 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2947 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2948 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2949 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2950 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2951 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2952 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2953 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2954 | self.insertAt(commentStr['middle'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2955 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2956 | # 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
|
2957 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2958 | self.insertAt(eol, endLine, self.lineLength(endLine)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2959 | self.insertAt(commentStr['end'], endLine + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2960 | self.insertAt(eol, lineFrom, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2961 | self.insertAt(commentStr['start'], lineFrom, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2962 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2963 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2964 | self.setSelection(lineFrom, 0, endLine + 3, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2965 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2966 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2967 | def boxCommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2968 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2969 | 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
|
2970 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2971 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2972 | self.boxCommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2973 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2974 | self.boxCommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2975 | |
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 | ## Indentation handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2978 | ############################################################################ |
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 | def __indentLine(self, indent = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2981 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2982 | 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
|
2983 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2984 | @param indent flag indicating an indent operation (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2985 | <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
|
2986 | Otherwise the current line is unindented. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2987 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2988 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2989 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2990 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2991 | self.indent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2992 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2993 | self.unindent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2994 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2995 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2996 | self.setCursorPosition(line, index + self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2997 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2998 | self.setCursorPosition(line, index - self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2999 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3000 | def __indentSelection(self, indent = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3001 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3002 | 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
|
3003 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3004 | @param indent flag indicating an indent operation (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3005 | <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
|
3006 | Otherwise the current line is unindented. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3007 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3008 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3009 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3010 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3011 | # get the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3012 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3013 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3014 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3015 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3016 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3017 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3018 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3019 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3020 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3021 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3022 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3023 | self.indent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3024 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3025 | self.unindent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3026 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3027 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3028 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3029 | self.setSelection(lineFrom, indexFrom + self.indentationWidth(), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3030 | lineTo, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3031 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3032 | self.setSelection(lineFrom, indexFrom + self.indentationWidth(), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3033 | lineTo, indexTo + self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3034 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3035 | indexStart = indexFrom - self.indentationWidth() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3036 | if indexStart < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3037 | indexStart = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3038 | indexEnd = indexTo - self.indentationWidth() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3039 | if indexEnd < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3040 | indexEnd = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3041 | self.setSelection(lineFrom, indexStart, lineTo, indexEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3042 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3043 | def indentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3044 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3045 | 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
|
3046 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3047 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3048 | self.__indentSelection(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3049 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3050 | self.__indentLine(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3051 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3052 | def unindentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3053 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3054 | 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
|
3055 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3056 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3057 | self.__indentSelection(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3058 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3059 | self.__indentLine(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3060 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3061 | def smartIndentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3062 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3063 | Public slot to indent current line smartly. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3064 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3065 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3066 | if self.lexer_ and self.lexer_.hasSmartIndent(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3067 | self.lexer_.smartIndentSelection(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3068 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3069 | self.__indentSelection(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3070 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3071 | if self.lexer_ and self.lexer_.hasSmartIndent(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3072 | self.lexer_.smartIndentLine(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3073 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3074 | self.__indentLine(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3075 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3076 | def gotoLine(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3077 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3078 | 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
|
3079 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3080 | @param line line number to go to (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3081 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3082 | self.setCursorPosition(line - 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3083 | self.ensureVisible(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3084 | |
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 | ## Setup methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3087 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3088 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3089 | def readSettings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3090 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3091 | 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
|
3092 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3093 | # read the lexer settings and reinit the properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3094 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3095 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3096 | self.lexer_.initProperties() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3097 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3098 | # read the typing completer settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3099 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3100 | self.completer.readSettings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3101 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3102 | # set the margins layout |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3103 | if QSCINTILLA_VERSION() >= 0x020301: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3104 | self.__unifiedMargins = Preferences.getEditor("UnifiedMargins") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3105 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3106 | # set the line marker colours |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3107 | self.__setLineMarkerColours() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3108 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3109 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3110 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3111 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3112 | # set margin 0 and 2 configuration |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3113 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3114 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3115 | # set the autocompletion and calltips function |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3116 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3117 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3118 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3119 | # set the autosave flags |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3120 | self.autosaveEnabled = Preferences.getEditor("AutosaveInterval") > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3121 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3122 | if Preferences.getEditor("MiniContextMenu") != self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3123 | # regenerate context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3124 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3125 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3126 | # set checked context menu items |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3127 | self.menuActs["AutoCompletionEnable"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3128 | self.autoCompletionThreshold() != -1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3129 | self.menuActs["MonospacedFont"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3130 | self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3131 | self.menuActs["AutosaveEnable"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3132 | self.autosaveEnabled and not self.autosaveManuallyDisabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3133 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3134 | # regenerate the margins context menu(s) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3135 | self.__initContextMenuMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3136 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3137 | if Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3138 | self.__markOccurrencesTimer.setInterval( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3139 | Preferences.getEditor("MarkOccurrencesTimeout")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3140 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3141 | self.__markOccurrencesTimer.stop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3142 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3143 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3144 | def __setLineMarkerColours(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3145 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3146 | Private method to set the line marker colours. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3147 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3148 | self.setMarkerForegroundColor(Preferences.getEditorColour("CurrentMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3149 | self.currentline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3150 | self.setMarkerBackgroundColor(Preferences.getEditorColour("CurrentMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3151 | self.currentline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3152 | self.setMarkerForegroundColor(Preferences.getEditorColour("ErrorMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3153 | self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3154 | self.setMarkerBackgroundColor(Preferences.getEditorColour("ErrorMarker"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3155 | self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3156 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3157 | def __setMarginsDisplay(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3158 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3159 | Private method to configure margins 0 and 2. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3160 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3161 | # set the settings for all margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3162 | self.setMarginsFont(Preferences.getEditorOtherFonts("MarginsFont")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3163 | self.setMarginsForegroundColor(Preferences.getEditorColour("MarginsForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3164 | self.setMarginsBackgroundColor(Preferences.getEditorColour("MarginsBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3165 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3166 | # reset standard margins settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3167 | for margin in range(5): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3168 | self.setMarginLineNumbers(margin, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3169 | self.setMarginMarkerMask(margin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3170 | self.setMarginWidth(margin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3171 | self.setMarginSensitivity(margin, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3172 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3173 | # set marker margin(s) settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3174 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3175 | margin1Mask = (1 << self.breakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3176 | (1 << self.cbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3177 | (1 << self.tbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3178 | (1 << self.tcbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3179 | (1 << self.dbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3180 | (1 << self.currentline) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3181 | (1 << self.errorline) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3182 | (1 << self.bookmark) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3183 | (1 << self.syntaxerror) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3184 | (1 << self.notcovered) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3185 | (1 << self.taskmarker) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3186 | (1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3187 | self.setMarginWidth(1, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3188 | self.setMarginSensitivity(1, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3189 | self.setMarginMarkerMask(1, margin1Mask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3190 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3191 | self.__linenoMargin = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3192 | self.__foldMargin = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3193 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3194 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3195 | self.__bmMargin = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3196 | self.__linenoMargin = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3197 | self.__bpMargin = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3198 | self.__foldMargin = 3 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3199 | self.__indicMargin = 4 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3200 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3201 | marginBmMask = (1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3202 | self.setMarginWidth(self.__bmMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3203 | self.setMarginSensitivity(self.__bmMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3204 | self.setMarginMarkerMask(self.__bmMargin, marginBmMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3205 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3206 | marginBpMask = (1 << self.breakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3207 | (1 << self.cbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3208 | (1 << self.tbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3209 | (1 << self.tcbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3210 | (1 << self.dbreakpoint) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3211 | (1 << self.currentline) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3212 | (1 << self.errorline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3213 | self.setMarginWidth(self.__bpMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3214 | self.setMarginSensitivity(self.__bpMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3215 | self.setMarginMarkerMask(self.__bpMargin, marginBpMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3216 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3217 | marginIndicMask = (1 << self.syntaxerror) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3218 | (1 << self.notcovered) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3219 | (1 << self.taskmarker) | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3220 | (1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3221 | self.setMarginWidth(self.__indicMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3222 | self.setMarginSensitivity(self.__indicMargin, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3223 | self.setMarginMarkerMask(self.__indicMargin, marginIndicMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3224 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3225 | # set linenumber margin settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3226 | linenoMargin = Preferences.getEditor("LinenoMargin") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3227 | self.setMarginLineNumbers(self.__linenoMargin, linenoMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3228 | if linenoMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3229 | self.setMarginWidth(self.__linenoMargin, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3230 | ' ' + '8' * Preferences.getEditor("LinenoWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3231 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3232 | self.setMarginWidth(self.__linenoMargin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3233 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3234 | # set folding margin settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3235 | if Preferences.getEditor("FoldingMargin"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3236 | self.setMarginWidth(self.__foldMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3237 | folding = Preferences.getEditor("FoldingStyle") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3238 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3239 | folding = QsciScintilla.FoldStyle(folding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3240 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3241 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3242 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3243 | self.setFolding(folding, self.__foldMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3244 | except TypeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3245 | self.setFolding(folding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3246 | self.setFoldMarginColors(Preferences.getEditorColour("FoldmarginBackground"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3247 | Preferences.getEditorColour("FoldmarginBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3248 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3249 | self.setMarginWidth(self.__foldMargin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3250 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3251 | self.setFolding(QsciScintilla.NoFoldStyle, self.__foldMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3252 | except TypeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3253 | self.setFolding(QsciScintilla.NoFoldStyle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3254 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3255 | def __setTextDisplay(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3256 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3257 | Private method to configure the text display. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3258 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3259 | self.setTabWidth(Preferences.getEditor("TabWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3260 | self.setIndentationWidth(Preferences.getEditor("IndentWidth")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3261 | if self.lexer_ and self.lexer_.alwaysKeepTabs(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3262 | self.setIndentationsUseTabs(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3263 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3264 | self.setIndentationsUseTabs(Preferences.getEditor("TabForIndentation")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3265 | self.setTabIndents(Preferences.getEditor("TabIndents")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3266 | self.setBackspaceUnindents(Preferences.getEditor("TabIndents")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3267 | self.setIndentationGuides(Preferences.getEditor("IndentationGuides")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3268 | if Preferences.getEditor("ShowWhitespace"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3269 | self.setWhitespaceVisibility(QsciScintilla.WsVisible) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3270 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3271 | self.setWhitespaceVisibility(QsciScintilla.WsInvisible) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3272 | self.setEolVisibility(Preferences.getEditor("ShowEOL")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3273 | self.setAutoIndent(Preferences.getEditor("AutoIndentation")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3274 | if Preferences.getEditor("BraceHighlighting"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3275 | self.setBraceMatching(QsciScintilla.SloppyBraceMatch) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3276 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3277 | self.setBraceMatching(QsciScintilla.NoBraceMatch) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3278 | self.setMatchedBraceForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3279 | Preferences.getEditorColour("MatchingBrace")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3280 | self.setMatchedBraceBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3281 | Preferences.getEditorColour("MatchingBraceBack")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3282 | self.setUnmatchedBraceForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3283 | Preferences.getEditorColour("NonmatchingBrace")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3284 | self.setUnmatchedBraceBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3285 | Preferences.getEditorColour("NonmatchingBraceBack")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3286 | if Preferences.getEditor("CustomSelectionColours"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3287 | self.setSelectionBackgroundColor(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3288 | Preferences.getEditorColour("SelectionBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3289 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3290 | self.setSelectionBackgroundColor(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3291 | QApplication.palette().color(QPalette.Highlight)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3292 | if Preferences.getEditor("ColourizeSelText"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3293 | self.resetSelectionForegroundColor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3294 | elif Preferences.getEditor("CustomSelectionColours"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3295 | self.setSelectionForegroundColor(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3296 | Preferences.getEditorColour("SelectionForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3297 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3298 | self.setSelectionForegroundColor(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3299 | QApplication.palette().color(QPalette.HighlightedText)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3300 | self.setSelectionToEol(Preferences.getEditor("ExtendSelectionToEol")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3301 | self.setCaretForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3302 | Preferences.getEditorColour("CaretForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3303 | self.setCaretLineBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3304 | Preferences.getEditorColour("CaretLineBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3305 | self.setCaretLineVisible(Preferences.getEditor("CaretLineVisible")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3306 | self.caretWidth = Preferences.getEditor("CaretWidth") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3307 | self.setCaretWidth(self.caretWidth) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3308 | self.useMonospaced = Preferences.getEditor("UseMonospacedFont") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3309 | self.setMonospaced(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3310 | edgeMode = Preferences.getEditor("EdgeMode") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3311 | edge = QsciScintilla.EdgeMode(edgeMode) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3312 | self.setEdgeMode(edge) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3313 | if edgeMode: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3314 | self.setEdgeColumn(Preferences.getEditor("EdgeColumn")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3315 | self.setEdgeColor(Preferences.getEditorColour("Edge")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3316 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3317 | if Preferences.getEditor("WrapLongLines"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3318 | self.setWrapMode(QsciScintilla.WrapWord) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3319 | self.setWrapVisualFlags(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3320 | QsciScintilla.WrapFlagByBorder, QsciScintilla.WrapFlagByBorder) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3321 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3322 | self.setWrapMode(QsciScintilla.WrapNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3323 | self.setWrapVisualFlags(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3324 | QsciScintilla.WrapFlagNone, QsciScintilla.WrapFlagNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3325 | |
230
2cde09c26384
Added code to configure the zoom factor a file is opened with.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
3326 | 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
|
3327 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3328 | self.searchIndicator = QsciScintilla.INDIC_CONTAINER |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3329 | self.indicatorDefine(self.searchIndicator, QsciScintilla.INDIC_BOX, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3330 | Preferences.getEditorColour("SearchMarkers")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3331 | if not Preferences.getEditor("SearchMarkersEnabled") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3332 | not Preferences.getEditor("QuickSearchMarkersEnabled") and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3333 | not Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3334 | self.clearAllIndicators(self.searchIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3335 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3336 | self.spellingIndicator = QsciScintilla.INDIC_CONTAINER + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3337 | self.indicatorDefine(self.spellingIndicator, QsciScintilla.INDIC_SQUIGGLE, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3338 | Preferences.getEditorColour("SpellingMarkers")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3339 | self.__setSpelling() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3340 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3341 | def __setEolMode(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3342 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3343 | 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
|
3344 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3345 | eolMode = Preferences.getEditor("EOLMode") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3346 | eolMode = QsciScintilla.EolMode(eolMode) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3347 | self.setEolMode(eolMode) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3348 | self.__eolChanged() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3349 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3350 | def __setAutoCompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3351 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3352 | Private method to configure the autocompletion function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3353 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3354 | if self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3355 | self.setAutoCompletionFillupsEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3356 | Preferences.getEditor("AutoCompletionFillups")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3357 | self.setAutoCompletionCaseSensitivity( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3358 | Preferences.getEditor("AutoCompletionCaseSensitivity")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3359 | self.setAutoCompletionReplaceWord( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3360 | Preferences.getEditor("AutoCompletionReplaceWord")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3361 | self.setAutoCompletionShowSingle( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3362 | Preferences.getEditor("AutoCompletionShowSingle")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3363 | autoCompletionSource = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3364 | if autoCompletionSource == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3365 | self.setAutoCompletionSource(QsciScintilla.AcsDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3366 | elif autoCompletionSource == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3367 | self.setAutoCompletionSource(QsciScintilla.AcsAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3368 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3369 | self.setAutoCompletionSource(QsciScintilla.AcsAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3370 | if Preferences.getEditor("AutoCompletionEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3371 | if self.__acHookFunction is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3372 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3373 | Preferences.getEditor("AutoCompletionThreshold")) |
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.setAutoCompletionThreshold(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3376 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3377 | self.setAutoCompletionThreshold(-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3378 | self.setAutoCompletionSource(QsciScintilla.AcsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3379 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3380 | def __setCallTips(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3381 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3382 | Private method to configure the calltips function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3383 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3384 | if Preferences.getEditor("CallTipsEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3385 | self.setCallTipsBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3386 | Preferences.getEditorColour("CallTipsBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3387 | self.setCallTipsVisible(Preferences.getEditor("CallTipsVisible")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3388 | calltipsStyle = Preferences.getEditor("CallTipsStyle") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3389 | if calltipsStyle == QsciScintilla.CallTipsNoContext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3390 | self.setCallTipsStyle(QsciScintilla.CallTipsNoContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3391 | elif calltipsStyle == QsciScintilla.CallTipsNoAutoCompletionContext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3392 | self.setCallTipsStyle(QsciScintilla.CallTipsNoAutoCompletionContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3393 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3394 | self.setCallTipsStyle(QsciScintilla.CallTipsContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3395 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3396 | self.setCallTipsStyle(QsciScintilla.CallTipsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3397 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3398 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3399 | ## Autocompletion handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3400 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3401 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3402 | def canAutoCompleteFromAPIs(self): |
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 | Public method to check for API availablity. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3405 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3406 | @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
|
3407 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3408 | return self.acAPI |
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 | def autoCompleteQScintilla(self): |
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 | 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
|
3413 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3414 | acs = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3415 | if acs == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3416 | self.autoCompleteFromDocument() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3417 | elif acs == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3418 | self.autoCompleteFromAPIs() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3419 | elif acs == QsciScintilla.AcsAll: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3420 | self.autoCompleteFromAll() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3421 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3422 | QMessageBox.information(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3423 | self.trUtf8("Autocompletion"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3424 | self.trUtf8("""Autocompletion is not available because""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3425 | """ there is no autocompletion source set.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3426 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3427 | def setAutoCompletionEnabled(self, enable): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3428 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3429 | Public method to enable/disable autocompletion. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3430 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3431 | @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
|
3432 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3433 | if enable: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3434 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3435 | Preferences.getEditor("AutoCompletionThreshold")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3436 | autoCompletionSource = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3437 | if autoCompletionSource == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3438 | self.setAutoCompletionSource(QsciScintilla.AcsDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3439 | elif autoCompletionSource == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3440 | self.setAutoCompletionSource(QsciScintilla.AcsAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3441 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3442 | self.setAutoCompletionSource(QsciScintilla.AcsAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3443 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3444 | self.setAutoCompletionThreshold(-1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3445 | self.setAutoCompletionSource(QsciScintilla.AcsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3446 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3447 | def __toggleAutoCompletionEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3448 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3449 | 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
|
3450 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3451 | if self.menuActs["AutoCompletionEnable"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3452 | self.setAutoCompletionEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3453 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3454 | self.setAutoCompletionEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3455 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3456 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3457 | ## Support for autocompletion hook methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3458 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3459 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3460 | def __charAdded(self, charNumber): |
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 | 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
|
3463 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3464 | @param charNumber value of the character entered (integer) |
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 | if self.isListActive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3467 | char = chr(charNumber) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3468 | if self.__isStartChar(char): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3469 | self.cancelList() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3470 | self.autoComplete(auto = True, context = True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3471 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3472 | elif char == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3473 | self.cancelList() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3474 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3475 | if self.callTipsStyle() != QsciScintilla.CallTipsNone and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3476 | 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
|
3477 | self.callTip() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3478 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3479 | if not self.isCallTipActive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3480 | char = chr(charNumber) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3481 | if self.__isStartChar(char): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3482 | self.autoComplete(auto = True, context = True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3483 | return |
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 | line, col = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3486 | txt = self.getWordLeft(line, col) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3487 | if len(txt) >= Preferences.getEditor("AutoCompletionThreshold"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3488 | self.autoComplete(auto = True, context = False) |
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 | def __isStartChar(self, ch): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3492 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3493 | 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
|
3494 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3495 | @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
|
3496 | @return flag indicating the result (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3497 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3498 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3499 | return False |
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 | wseps = self.lexer_.autoCompletionWordSeparators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3502 | for wsep in wseps: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3503 | if wsep.endswith(ch): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3504 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3505 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3506 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3507 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3508 | def setAutoCompletionHook(self, func): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3509 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3510 | Public method to set an autocompletion hook. |
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 | @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
|
3513 | 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
|
3514 | a boolean indicating to complete a context. |
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 | if self.autoCompletionThreshold() > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3517 | self.setAutoCompletionThreshold(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3518 | self.__acHookFunction = func |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3519 | self.connect(self, SIGNAL("SCN_CHARADDED(int)"), self.__charAdded) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3520 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3521 | def unsetAutoCompletionHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3522 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3523 | 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
|
3524 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3525 | self.disconnect(self, SIGNAL("SCN_CHARADDED(int)"), self.__charAdded) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3526 | self.__acHookFunction = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3527 | if self.autoCompletionThreshold() == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3528 | self.setAutoCompletionThreshold( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3529 | Preferences.getEditor("AutoCompletionThreshold")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3530 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3531 | def autoCompletionHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3532 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3533 | Public method to get the autocompletion hook function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3534 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3535 | @return function set by setAutoCompletionHook() |
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 | return self.__acHookFunction |
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 | def autoComplete(self, auto = False, context = True): |
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 | Public method to start autocompletion. |
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 | @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
|
3544 | @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
|
3545 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3546 | if auto and self.autoCompletionThreshold() == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3547 | # autocompletion is disabled |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3548 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3549 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3550 | if self.__acHookFunction is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3551 | self.__acHookFunction(self, context) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3552 | elif not auto: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3553 | self.autoCompleteQScintilla() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3554 | elif self.autoCompletionSource() != QsciScintilla.AcsNone: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3555 | self.autoCompleteQScintilla() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3556 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3557 | def callTip(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3558 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3559 | Public method to show calltips. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3560 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3561 | if self.__ctHookFunction is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3562 | self.__callTip() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3563 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3564 | QsciScintillaCompat.callTip(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3565 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3566 | def __callTip(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3567 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3568 | 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
|
3569 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3570 | pos = self.currentPosition() |
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 | # 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
|
3573 | # to highlight |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3574 | commas = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3575 | found = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3576 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3577 | while ch: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3578 | if ch == ',': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3579 | commas += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3580 | elif ch == ')': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3581 | depth = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3582 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3583 | # 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
|
3584 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3585 | while ch: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3586 | if 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 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3589 | depth -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3590 | if depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3591 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3592 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3593 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3594 | found = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3595 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3596 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3597 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3598 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3599 | self.SendScintilla(QsciScintilla.SCI_CALLTIPCANCEL) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3600 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3601 | if not found: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3602 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3603 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3604 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3605 | callTips = self.__ctHookFunction(self, pos, commas) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3606 | except TypeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3607 | # for backward compatibility |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3608 | callTips = self.__ctHookFunction(self, pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3609 | if len(callTips) == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3610 | if Preferences.getEditor("CallTipsScintillaOnFail"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3611 | # try QScintilla calltips |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3612 | QsciScintillaCompat.callTip(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3613 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3614 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3615 | ctshift = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3616 | for ct in callTips: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3617 | shift = ct.index("(") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3618 | if ctshift < shift: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3619 | ctshift = shift |
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 | cv = self.callTipsVisible() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3622 | if cv > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3623 | # this is just a safe guard |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3624 | ct = "\n".join(callTips[:cv]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3625 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3626 | # until here and unindent below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3627 | ct = "\n".join(callTips) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3628 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3629 | self.SendScintilla(QsciScintilla.SCI_CALLTIPSHOW, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3630 | self.__adjustedCallTipPosition(ctshift, pos), ct) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3631 | if '\n' in ct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3632 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3633 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3634 | # Highlight the current argument |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3635 | if commas == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3636 | astart = ct.find('(') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3637 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3638 | astart = ct.find(',') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3639 | commas -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3640 | while astart != -1 and commas > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3641 | astart = ct.find(',', astart + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3642 | commas -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3643 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3644 | if astart == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3645 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3646 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3647 | depth = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3648 | for aend in range(astart + 1, len(ct)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3649 | ch = ct[aend] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3650 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3651 | if ch == ',' and depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3652 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3653 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3654 | depth += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3655 | elif ch == ')': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3656 | if depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3657 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3658 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3659 | depth -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3660 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3661 | if astart != aend: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3662 | self.SendScintilla(QsciScintilla.SCI_CALLTIPSETHLT, astart, aend) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3663 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3664 | def __adjustedCallTipPosition(self, ctshift, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3665 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3666 | 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
|
3667 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3668 | @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
|
3669 | @param pos position into the text (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3670 | @return new position for the calltip (integer) |
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 | ct = pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3673 | if ctshift: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3674 | ctmin = self.SendScintilla(QsciScintilla.SCI_POSITIONFROMLINE, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3675 | self.SendScintilla(QsciScintilla.SCI_LINEFROMPOSITION, ct)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3676 | if ct - ctshift < ctmin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3677 | ct = ctmin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3678 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3679 | ct = ct - ctshift |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3680 | return ct |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3681 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3682 | def setCallTipHook(self, func): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3683 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3684 | Public method to set a calltip hook. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3685 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3686 | @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
|
3687 | 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
|
3688 | 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
|
3689 | 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
|
3690 | calltips as a list of strings. |
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 | self.__ctHookFunction = func |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3693 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3694 | def unsetCallTipHook(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3695 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3696 | Public method to unset a calltip hook. |
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 = None |
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 callTipHook(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 get the calltip hook function. |
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 | @return function set by setCallTipHook() |
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 | return self.__ctHookFunction |
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 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3709 | ## Methods needed by the context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3710 | ################################################################# |
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 | def __marginNumber(self, xPos): |
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 | 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
|
3715 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3716 | @param xPos x position (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3717 | @return margin number (integer, -1 for no margin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3718 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3719 | width = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3720 | for margin in range(5): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3721 | width += self.marginWidth(margin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3722 | if xPos <= width: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3723 | return margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3724 | return -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3725 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3726 | def contextMenuEvent(self, evt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3727 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3728 | Private method implementing the context menu event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3729 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3730 | @param evt the context menu event (QContextMenuEvent) |
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 | evt.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3733 | if self.__marginNumber(evt.x()) == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3734 | self.spellingMenuPos = self.positionFromPoint(evt.pos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3735 | if self.spellingMenuPos >= 0 and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3736 | self.spell is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3737 | self.hasIndicator(self.spellingIndicator, self.spellingMenuPos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3738 | self.spellingMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3739 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3740 | self.menu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3741 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3742 | self.line = self.lineAt(evt.pos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3743 | if self.__unifiedMargins: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3744 | self.marginMenu.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 | 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
|
3747 | self.bmMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3748 | elif self.__marginNumber(evt.x()) == self.__bpMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3749 | self.bpMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3750 | elif self.__marginNumber(evt.x()) == self.__indicMargin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3751 | self.indicMarginMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3752 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3753 | def __showContextMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3754 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3755 | 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
|
3756 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3757 | self.menuActs["Save"].setEnabled(self.isModified()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3758 | self.menuActs["Undo"].setEnabled(self.isUndoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3759 | self.menuActs["Redo"].setEnabled(self.isRedoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3760 | self.menuActs["Revert"].setEnabled(self.isModified()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3761 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3762 | self.menuActs["Cut"].setEnabled(self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3763 | self.menuActs["Copy"].setEnabled(self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3764 | if not self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3765 | if self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3766 | (self.isPyFile() or self.isPy3File()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3767 | self.menuActs["Show"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3768 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3769 | self.menuActs["Show"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3770 | if self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3771 | (self.isPyFile() or self.isPy3File() or self.isRubyFile()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3772 | self.menuActs["Diagrams"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3773 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3774 | self.menuActs["Diagrams"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3775 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3776 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3777 | self.menuActs["Comment"].setEnabled(self.lexer_.canBlockComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3778 | self.menuActs["Uncomment"].setEnabled(self.lexer_.canBlockComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3779 | self.menuActs["StreamComment"].setEnabled(self.lexer_.canStreamComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3780 | self.menuActs["BoxComment"].setEnabled(self.lexer_.canBoxComment()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3781 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3782 | self.menuActs["Comment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3783 | self.menuActs["Uncomment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3784 | self.menuActs["StreamComment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3785 | self.menuActs["BoxComment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3786 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3787 | 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
|
3788 | self.menuActs["TypingAidsEnabled"].setChecked(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3789 | 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
|
3790 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3791 | spellingAvailable = SpellChecker.isAvailable() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3792 | self.menuActs["SpellCheck"].setEnabled(spellingAvailable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3793 | self.menuActs["SpellCheckSelection"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3794 | spellingAvailable and self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3795 | self.menuActs["SpellCheckRemove"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3796 | spellingAvailable and self.spellingMenuPos >= 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3797 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3798 | self.emit(SIGNAL("showMenu"), "Main", self.menu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3799 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3800 | def __showContextMenuAutocompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3801 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3802 | 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
|
3803 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3804 | self.menuActs["acDynamic"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3805 | self.acAPI or self.__acHookFunction is not None) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3806 | self.menuActs["acAPI"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3807 | self.menuActs["acAPIDocument"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3808 | self.menuActs["calltip"].setEnabled(self.acAPI) |
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.emit(SIGNAL("showMenu"), "Autocompletion", self.autocompletionMenu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3811 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3812 | def __showContextMenuShow(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3813 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3814 | 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
|
3815 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3816 | prEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3817 | coEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3818 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3819 | # 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
|
3820 | 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
|
3821 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3822 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3823 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3824 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3825 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3826 | prEnable = prEnable or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3827 | os.path.isfile("%s.profile" % basename) or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3828 | os.path.isfile("%s.profile" % tbasename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3829 | coEnable = coEnable or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3830 | os.path.isfile("%s.coverage" % basename) or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3831 | os.path.isfile("%s.coverage" % tbasename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3832 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3833 | # now check ourself |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3834 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3835 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3836 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3837 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3838 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3839 | prEnable = prEnable or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3840 | os.path.isfile("%s.profile" % basename) or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3841 | os.path.isfile("%s.profile" % tbasename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3842 | coEnable = coEnable or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3843 | os.path.isfile("%s.coverage" % basename) or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3844 | os.path.isfile("%s.coverage" % tbasename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3845 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3846 | # now check for syntax errors |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3847 | if self.hasSyntaxErrors(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3848 | coEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3849 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3850 | self.profileMenuAct.setEnabled(prEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3851 | self.coverageMenuAct.setEnabled(coEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3852 | self.coverageShowAnnotationMenuAct.setEnabled(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3853 | coEnable and not self.coverageMarkersShown) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3854 | self.coverageHideAnnotationMenuAct.setEnabled(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3855 | self.coverageMarkersShown) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3856 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3857 | self.emit(SIGNAL("showMenu"), "Show", self.showMenu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3858 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3859 | def __showContextMenuGraphics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3860 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3861 | 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
|
3862 | """ |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
3863 | 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
|
3864 | self.applicationDiagramMenuAct.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3865 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3866 | self.applicationDiagramMenuAct.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3867 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3868 | self.emit(SIGNAL("showMenu"), "Graphics", self.graphicsMenu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3869 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3870 | def __showContextMenuMargin(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3871 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3872 | 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
|
3873 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3874 | if self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3875 | (self.isPyFile() or self.isPy3File() or self.isRubyFile()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3876 | self.marginMenuActs["Breakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3877 | self.marginMenuActs["TempBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3878 | if self.markersAtLine(self.line) & self.breakpointMask: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3879 | self.marginMenuActs["EditBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3880 | self.marginMenuActs["EnableBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3881 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3882 | self.marginMenuActs["EditBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3883 | self.marginMenuActs["EnableBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3884 | if self.markersAtLine(self.line) & (1 << self.dbreakpoint): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3885 | self.marginMenuActs["EnableBreakpoint"].setText(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3886 | self.trUtf8('Enable breakpoint')) |
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["EnableBreakpoint"].setText(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3889 | self.trUtf8('Disable breakpoint')) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3890 | if self.breaks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3891 | self.marginMenuActs["NextBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3892 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3893 | self.marginMenuActs["ClearBreakpoint"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3894 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3895 | self.marginMenuActs["NextBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3896 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3897 | self.marginMenuActs["ClearBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3898 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3899 | self.marginMenuActs["Breakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3900 | self.marginMenuActs["TempBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3901 | self.marginMenuActs["EditBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3902 | self.marginMenuActs["EnableBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3903 | self.marginMenuActs["NextBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3904 | self.marginMenuActs["PreviousBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3905 | self.marginMenuActs["ClearBreakpoint"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3906 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3907 | if self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3908 | self.marginMenuActs["NextBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3909 | self.marginMenuActs["PreviousBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3910 | self.marginMenuActs["ClearBookmark"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3911 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3912 | self.marginMenuActs["NextBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3913 | self.marginMenuActs["PreviousBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3914 | self.marginMenuActs["ClearBookmark"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3915 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3916 | if len(self.syntaxerrors): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3917 | self.marginMenuActs["GotoSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3918 | self.marginMenuActs["ClearSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3919 | if self.markersAtLine(self.line) & (1 << self.syntaxerror): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3920 | self.marginMenuActs["ShowSyntaxError"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3921 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3922 | self.marginMenuActs["ShowSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3923 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3924 | self.marginMenuActs["GotoSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3925 | self.marginMenuActs["ClearSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3926 | self.marginMenuActs["ShowSyntaxError"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3927 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3928 | if len(self.warnings): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3929 | self.marginMenuActs["NextWarningMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3930 | self.marginMenuActs["PreviousWarningMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3931 | self.marginMenuActs["ClearWarnings"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3932 | if self.markersAtLine(self.line) & (1 << self.warning): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3933 | self.marginMenuActs["ShowWarning"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3934 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3935 | self.marginMenuActs["ShowWarning"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3936 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3937 | self.marginMenuActs["NextWarningMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3938 | self.marginMenuActs["PreviousWarningMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3939 | self.marginMenuActs["ClearWarnings"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3940 | self.marginMenuActs["ShowWarning"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3941 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3942 | if self.notcoveredMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3943 | self.marginMenuActs["NextCoverageMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3944 | self.marginMenuActs["PreviousCoverageMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3945 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3946 | self.marginMenuActs["NextCoverageMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3947 | self.marginMenuActs["PreviousCoverageMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3948 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3949 | if self.__hasTaskMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3950 | self.marginMenuActs["PreviousTaskMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3951 | self.marginMenuActs["NextTaskMarker"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3952 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3953 | self.marginMenuActs["PreviousTaskMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3954 | self.marginMenuActs["NextTaskMarker"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3955 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3956 | self.emit(SIGNAL("showMenu"), "Margin", self.sender(), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3957 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3958 | def __showContextMenuChecks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3959 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3960 | 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
|
3961 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3962 | self.emit(SIGNAL("showMenu"), "Checks", self.checksMenu, self) |
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 __contextSave(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 save context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3967 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3968 | ok, newName = self.saveFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3969 | if ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3970 | self.vm.setEditorName(self, newName) |
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 | def __contextSaveAs(self): |
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 | 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
|
3975 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3976 | ok, newName = self.saveFileAs() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3977 | if ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3978 | self.vm.setEditorName(self, newName) |
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 | def __contextClose(self): |
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 | Private slot handling the close context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3983 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3984 | self.vm.closeEditor(self) |
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 __newView(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 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
|
3989 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3990 | self.vm.newEditorView(self.fileName, self, self.filetype) |
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 __newViewNewSplit(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.addSplit() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3997 | self.vm.newEditorView(self.fileName, self, self.filetype) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3998 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3999 | def __selectAll(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4000 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4001 | 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
|
4002 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4003 | self.selectAll(True) |
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 __deselectAll(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 deselect 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(False) |
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 shortenEmptyLines(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 | 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
|
4014 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4015 | searchRE = r"^[ \t]+$" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4016 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4017 | 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
|
4018 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4019 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4020 | self.replaceTarget("") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4021 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4022 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4023 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4024 | def __autosaveEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4025 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4026 | 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
|
4027 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4028 | if self.menuActs["AutosaveEnable"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4029 | self.autosaveManuallyDisabled = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4030 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4031 | self.autosaveManuallyDisabled = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4032 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4033 | def shouldAutosave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4034 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4035 | Public slot to check the autosave flags. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4036 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4037 | @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
|
4038 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4039 | return self.fileName is not None and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4040 | not self.autosaveManuallyDisabled and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4041 | not self.isReadOnly() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4042 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4043 | def __autoSyntaxCheck(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4044 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4045 | 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
|
4046 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4047 | if Preferences.getEditor("AutoCheckSyntax"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4048 | self.clearSyntaxError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4049 | self.clearFlakesWarnings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4050 | if self.isPy3File(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4051 | syntaxError, _fn, errorline, _code, _error = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4052 | Utilities.compile(self.fileName, self.text()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4053 | if syntaxError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4054 | self.toggleSyntaxError(int(errorline), True, _error) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4055 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4056 | if Preferences.getFlakes("IncludeInSyntaxCheck"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4057 | ignoreStarImportWarnings = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4058 | 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
|
4059 | try: |
206
e24ba21c6d3a
Corrected an issue with Py3Flakes integration occurring on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
163
diff
changeset
|
4060 | 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
|
4061 | 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
|
4062 | 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
|
4063 | 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
|
4064 | 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
|
4065 | 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
|
4066 | 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
|
4067 | |
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
|
4068 | _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
|
4069 | 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
|
4070 | 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
|
4071 | 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
|
4072 | 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
|
4073 | 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
|
4074 | 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
|
4075 | self.toggleSyntaxError(err.lineno, True, msg) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4076 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4077 | def __showCodeMetrics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4078 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4079 | 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
|
4080 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4081 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4082 | return |
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 | self.codemetrics = CodeMetricsDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4085 | self.codemetrics.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4086 | self.codemetrics.start(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4087 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4088 | def __getCodeCoverageFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4089 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4090 | 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
|
4091 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4092 | @return filename of the coverage file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4093 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4094 | files = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4095 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4096 | # 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
|
4097 | # a project coverage file |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4098 | 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
|
4099 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4100 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4101 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4102 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4103 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4104 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4105 | f = "%s.coverage" % basename |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4106 | tf = "%s.coverage" % tbasename |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4107 | if os.path.isfile(f): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4108 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4109 | if os.path.isfile(tf): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4110 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4111 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4112 | # 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
|
4113 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4114 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4115 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4116 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4117 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4118 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4119 | f = "%s.coverage" % basename |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4120 | tf = "%s.coverage" % tbasename |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4121 | 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
|
4122 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4123 | 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
|
4124 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4125 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4126 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4127 | if len(files) > 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4128 | fn, ok = QInputDialog.getItem(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4129 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4130 | self.trUtf8("Code Coverage"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4131 | self.trUtf8("Please select a coverage file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4132 | files, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4133 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4134 | if not ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4135 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4136 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4137 | fn = files[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4138 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4139 | fn = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4140 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4141 | return fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4142 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4143 | def __showCodeCoverage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4144 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4145 | 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
|
4146 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4147 | fn = self.__getCodeCoverageFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4148 | if fn: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4149 | self.codecoverage = PyCoverageDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4150 | self.codecoverage.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4151 | self.codecoverage.start(fn, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4152 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4153 | def __codeCoverageShowAnnotations(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4154 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4155 | 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
|
4156 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4157 | fn = self.__getCodeCoverageFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4158 | if fn: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4159 | cover = coverage(data_file = fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4160 | cover.use_cache(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4161 | cover.load() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4162 | missing = cover.analysis2(self.fileName)[3] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4163 | if missing: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4164 | for line in missing: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4165 | handle = self.markerAdd(line - 1, self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4166 | self.notcoveredMarkers.append(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4167 | self.emit(SIGNAL('coverageMarkersShown'), True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4168 | self.coverageMarkersShown = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4169 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4170 | QMessageBox.information(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4171 | self.trUtf8("Show Code Coverage Annotations"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4172 | self.trUtf8("""All lines have been covered.""")) |
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 | QMessageBox.warning(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4175 | self.trUtf8("Show Code Coverage Annotations"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4176 | self.trUtf8("""There is no coverage file available.""")) |
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 | def __codeCoverageHideAnnotations(self): |
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 | 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
|
4181 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4182 | for handle in self.notcoveredMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4183 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4184 | self.notcoveredMarkers = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4185 | self.emit(SIGNAL('coverageMarkersShown'), False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4186 | self.coverageMarkersShown = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4187 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4188 | def hasCoverageMarkers(self): |
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 | 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
|
4191 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4192 | return len(self.notcoveredMarkers) > 0 |
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 | def nextUncovered(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4195 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4196 | 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
|
4197 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4198 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4199 | if line == self.lines()-1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4200 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4201 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4202 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4203 | ucline = self.markerFindNext(line, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4204 | if ucline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4205 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4206 | ucline = self.markerFindNext(0, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4207 | if ucline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4208 | self.setCursorPosition(ucline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4209 | self.ensureLineVisible(ucline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4210 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4211 | def previousUncovered(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4212 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4213 | 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
|
4214 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4215 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4216 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4217 | line = self.lines()-1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4218 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4219 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4220 | ucline = self.markerFindPrevious(line, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4221 | if ucline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4222 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4223 | 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
|
4224 | if ucline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4225 | self.setCursorPosition(ucline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4226 | self.ensureLineVisible(ucline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4227 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4228 | def __showProfileData(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4229 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4230 | 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
|
4231 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4232 | files = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4233 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4234 | # 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
|
4235 | # a project profile file |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4236 | 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
|
4237 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4238 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4239 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4240 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4241 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4242 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4243 | f = "%s.profile" % basename |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4244 | tf = "%s.profile" % tbasename |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4245 | if os.path.isfile(f): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4246 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4247 | if os.path.isfile(tf): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4248 | files.append(tf) |
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 | # 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
|
4251 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4252 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4253 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4254 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4255 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4256 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4257 | f = "%s.profile" % basename |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4258 | tf = "%s.profile" % tbasename |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4259 | 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
|
4260 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4261 | 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
|
4262 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4263 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4264 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4265 | if len(files) > 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4266 | fn, ok = QInputDialog.getItem(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4267 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4268 | self.trUtf8("Profile Data"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4269 | self.trUtf8("Please select a profile file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4270 | files, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4271 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4272 | if not ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4273 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4274 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4275 | fn = files[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4276 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4277 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4278 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4279 | self.profiledata = PyProfileDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4280 | self.profiledata.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4281 | self.profiledata.start(fn, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4282 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4283 | def __lmBbookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4284 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4285 | 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
|
4286 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4287 | self.marginMenuActs["LMBbookmarks"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4288 | self.marginMenuActs["LMBbreakpoints"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4289 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4290 | def __lmBbreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4291 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4292 | 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
|
4293 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4294 | self.marginMenuActs["LMBbookmarks"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4295 | self.marginMenuActs["LMBbreakpoints"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4296 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4297 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4298 | ## Syntax error handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4299 | ############################################################################ |
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 | def toggleSyntaxError(self, line, error, msg = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4302 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4303 | Public method to toggle a syntax error indicator. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4304 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4305 | @param line line number of the syntax error |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4306 | @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
|
4307 | set or deleted (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4308 | @param msg error message (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4309 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4310 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4311 | line = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4312 | # 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
|
4313 | if error: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4314 | # set a new syntax error marker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4315 | markers = self.markersAtLine(line - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4316 | if not (markers & (1 << self.syntaxerror)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4317 | handle = self.markerAdd(line - 1, self.syntaxerror) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4318 | self.syntaxerrors[handle] = msg |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4319 | self.emit(SIGNAL('syntaxerrorToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4320 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4321 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4322 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4323 | del self.syntaxerrors[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4324 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4325 | self.emit(SIGNAL('syntaxerrorToggled'), self) |
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 getSyntaxErrors(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4328 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4329 | Public method to retrieve the syntax error markers. |
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 | @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
|
4332 | (list of integer) |
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 | selist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4335 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4336 | selist.append(self.markerLine(handle) + 1) |
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 | selist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4339 | return selist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4340 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4341 | def hasSyntaxErrors(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4342 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4343 | 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
|
4344 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4345 | @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
|
4346 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4347 | return len(self.syntaxerrors) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4348 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4349 | def gotoSyntaxError(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4350 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4351 | 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
|
4352 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4353 | seline = self.markerFindNext(0, 1 << self.syntaxerror) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4354 | if seline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4355 | self.setCursorPosition(seline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4356 | self.ensureLineVisible(seline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4357 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4358 | def clearSyntaxError(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4359 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4360 | 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
|
4361 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4362 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4363 | line = self.markerLine(handle) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4364 | self.toggleSyntaxError(line, False) |
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 | def __showSyntaxError(self, line = -1): |
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 | 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
|
4369 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4370 | @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
|
4371 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4372 | if line == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4373 | line = self.line |
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 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4376 | if self.markerLine(handle) == line: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4377 | QMessageBox.critical(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4378 | self.trUtf8("Syntax Error"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4379 | self.syntaxerrors[handle]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4380 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4381 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4382 | QMessageBox.critical(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4383 | self.trUtf8("Syntax Error"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4384 | self.trUtf8("No syntax error message available.")) |
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 | ############################################################################ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4387 | ## Flakes warning handling methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4388 | ############################################################################ |
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 | def toggleFlakesWarning(self, line, warning, msg = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4391 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4392 | Public method to toggle a flakes warning indicator. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4393 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4394 | @param line line number of the flakes warning |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4395 | @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
|
4396 | set or deleted (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4397 | @param msg warning message (string) |
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 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4400 | line = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4401 | # 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
|
4402 | if warning: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4403 | # set/ammend a new warning marker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4404 | markers = self.markersAtLine(line - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4405 | if not (markers & (1 << self.warning)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4406 | handle = self.markerAdd(line - 1, self.warning) |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4407 | self.warnings[handle] = [msg] |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4408 | self.emit(SIGNAL('syntaxerrorToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4409 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4410 | for handle in list(self.warnings.keys()): |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4411 | if self.markerLine(handle) == line - 1 and \ |
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4412 | msg not in self.warnings[handle]: |
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4413 | self.warnings[handle].append(msg) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4414 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4415 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4416 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4417 | del self.warnings[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4418 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4419 | self.emit(SIGNAL('syntaxerrorToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4420 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4421 | def getFlakesWarnings(self): |
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 | Public method to retrieve the flakes warning markers. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4424 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4425 | @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
|
4426 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4427 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4428 | fwlist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4429 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4430 | fwlist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4431 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4432 | fwlist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4433 | return fwlist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4434 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4435 | def hasFlakesWarnings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4436 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4437 | 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
|
4438 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4439 | @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
|
4440 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4441 | return len(self.warnings) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4442 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4443 | def nextFlakesWarning(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4444 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4445 | 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
|
4446 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4447 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4448 | if line == self.lines() - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4449 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4450 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4451 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4452 | fwline = self.markerFindNext(line, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4453 | if fwline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4454 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4455 | fwline = self.markerFindNext(0, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4456 | if fwline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4457 | self.setCursorPosition(fwline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4458 | self.ensureLineVisible(fwline) |
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 | def previousFlakesWarning(self): |
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 | 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
|
4463 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4464 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4465 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4466 | line = self.lines() - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4467 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4468 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4469 | fwline = self.markerFindPrevious(line, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4470 | if fwline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4471 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4472 | 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
|
4473 | if fwline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4474 | self.setCursorPosition(fwline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4475 | self.ensureLineVisible(fwline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4476 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4477 | def clearFlakesWarnings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4478 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4479 | 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
|
4480 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4481 | for handle in self.warnings: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4482 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4483 | self.warnings = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4484 | self.emit(SIGNAL('syntaxerrorToggled'), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4485 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4486 | def __showFlakesWarning(self, line = -1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4487 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4488 | 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
|
4489 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4490 | @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
|
4491 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4492 | if line == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4493 | line = self.line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4494 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4495 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4496 | if self.markerLine(handle) == line: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4497 | QMessageBox.warning(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4498 | self.trUtf8("py3flakes Warning"), |
95
261bc03812fd
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
4499 | '\n'.join(self.warnings[handle])) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4500 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4501 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4502 | QMessageBox.warning(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4503 | self.trUtf8("py3flakes Warning"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4504 | self.trUtf8("No py3flakes warning message available.")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4505 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4506 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4507 | ## Macro handling methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4508 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4509 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4510 | def __getMacroName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4511 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4512 | 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
|
4513 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4514 | @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
|
4515 | canceled the operation. (string, boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4516 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4517 | qs = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4518 | for s in list(self.macros.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4519 | qs.append(s) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4520 | qs.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4521 | return QInputDialog.getItem(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4522 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4523 | self.trUtf8("Macro Name"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4524 | self.trUtf8("Select a macro name:"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4525 | qs, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4526 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4527 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4528 | def macroRun(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4529 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4530 | Public method to execute a macro. |
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 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4533 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4534 | self.macros[name].play() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4535 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4536 | def macroDelete(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4537 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4538 | Public method to delete a macro. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4539 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4540 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4541 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4542 | del self.macros[name] |
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 | def macroLoad(self): |
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 | 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
|
4547 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4548 | configDir = Utilities.getConfigDir() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4549 | fname = QFileDialog.getOpenFileName( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4550 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4551 | self.trUtf8("Load macro file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4552 | configDir, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4553 | self.trUtf8("Macro files (*.macro)")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4554 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4555 | if not fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4556 | return # user aborted |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4557 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4558 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4559 | f = open(fname, "r", encoding = "utf-8") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4560 | lines = f.readlines() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4561 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4562 | except IOError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4563 | QMessageBox.critical(self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4564 | self.trUtf8("Error loading macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4565 | 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
|
4566 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4567 | return |
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 | if len(lines) != 2: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4570 | QMessageBox.critical(self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4571 | self.trUtf8("Error loading macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4572 | 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
|
4573 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4574 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4575 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4576 | macro = QsciMacro(lines[1], self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4577 | self.macros[lines[0].strip()] = macro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4578 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4579 | def macroSave(self): |
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 | 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
|
4582 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4583 | configDir = Utilities.getConfigDir() |
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 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4586 | if not ok or not name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4587 | return # user abort |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4588 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4589 | fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4590 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4591 | self.trUtf8("Save macro file"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4592 | configDir, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4593 | self.trUtf8("Macro files (*.macro)"), |
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 | QFileDialog.Options(QFileDialog.DontConfirmOverwrite)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4596 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4597 | if not fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4598 | return # user aborted |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4599 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4600 | ext = QFileInfo(fname).suffix() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4601 | if not ext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4602 | ex = selectedFilter.split("(*")[1].split(")")[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4603 | if ex: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4604 | fname += ex |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4605 | if QFileInfo(fname).exists(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4606 | res = QMessageBox.warning(self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4607 | self.trUtf8("Save macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4608 | self.trUtf8("<p>The macro file <b>{0}</b> already exists.</p>") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4609 | .format(fname), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4610 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4611 | QMessageBox.Abort | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4612 | QMessageBox.Save), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4613 | QMessageBox.Abort) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4614 | if res == QMessageBox.Abort or res == QMessageBox.Cancel: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4615 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4616 | fname = Utilities.toNativeSeparators(fname) |
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 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4619 | f = open(fname, "w", encoding = "utf-8") |
245
de5c4effc747
Fixed some issues related to Python's universal newline support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
230
diff
changeset
|
4620 | f.write("%s%s" % (name, "\n")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4621 | f.write(self.macros[name].save()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4622 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4623 | except IOError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4624 | QMessageBox.critical(self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4625 | self.trUtf8("Error saving macro"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4626 | 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
|
4627 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4628 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4629 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4630 | def macroRecordingStart(self): |
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 | Public method to start macro recording. |
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 self.recording: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4635 | res = QMessageBox.warning(self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4636 | self.trUtf8("Start Macro Recording"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4637 | self.trUtf8("Macro recording is already active. Start new?"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4638 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4639 | QMessageBox.No | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4640 | QMessageBox.Yes), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4641 | QMessageBox.Yes) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4642 | if res == QMessageBox.Yes: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4643 | self.macroRecordingStop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4644 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4645 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4646 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4647 | self.recording = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4648 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4649 | self.curMacro = QsciMacro(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4650 | self.curMacro.startRecording() |
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 | def macroRecordingStop(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4653 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4654 | Public method to stop macro recording. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4655 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4656 | if not self.recording: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4657 | return # we are not recording |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4658 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4659 | self.curMacro.endRecording() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4660 | self.recording = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4661 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4662 | name, ok = QInputDialog.getText(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4663 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4664 | self.trUtf8("Macro Recording"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4665 | self.trUtf8("Enter name of the macro:"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4666 | QLineEdit.Normal) |
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 ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4669 | self.macros[name] = self.curMacro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4670 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4671 | self.curMacro = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4672 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4673 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4674 | ## Overwritten methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4675 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4676 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4677 | def undo(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4678 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4679 | Public method to undo the last recorded change. |
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 | QsciScintillaCompat.undo(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4682 | self.emit(SIGNAL('undoAvailable'), self.isUndoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4683 | self.emit(SIGNAL('redoAvailable'), self.isRedoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4684 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4685 | def redo(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4686 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4687 | Public method to redo the last recorded change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4688 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4689 | QsciScintillaCompat.redo(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4690 | self.emit(SIGNAL('undoAvailable'), self.isUndoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4691 | self.emit(SIGNAL('redoAvailable'), self.isRedoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4692 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4693 | def close(self, alsoDelete = False): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4694 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4695 | Public method called when the window gets closed. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4696 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4697 | This overwritten method redirects the action to our |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4698 | ViewManager.closeEditor, which in turn calls our closeIt |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4699 | method. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4700 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4701 | @param alsoDelete ignored |
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 | return self.vm.closeEditor(self) |
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 | def closeIt(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4706 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4707 | 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
|
4708 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4709 | if Preferences.getEditor("ClearBreaksOnClose"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4710 | self.__menuClearBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4711 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4712 | for clone in self.__clones[:]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4713 | self.removeClone(clone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4714 | clone.removeClone(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4715 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4716 | self.disconnect(self.breakpointModel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4717 | SIGNAL("rowsAboutToBeRemoved(const QModelIndex &, int, int)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4718 | self.__deleteBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4719 | self.disconnect(self.breakpointModel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4720 | SIGNAL("dataAboutToBeChanged(const QModelIndex &, const QModelIndex &)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4721 | self.__breakPointDataAboutToBeChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4722 | self.disconnect(self.breakpointModel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4723 | SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4724 | self.__changeBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4725 | self.disconnect(self.breakpointModel, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4726 | SIGNAL("rowsInserted(const QModelIndex &, int, int)"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4727 | self.__addBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4728 | |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
4729 | self.disconnect(self.project, SIGNAL("projectPropertiesChanged"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4730 | self.__projectPropertiesChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4731 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4732 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4733 | self.spell.stopIncrementalCheck() |
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 | QsciScintillaCompat.close(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 keyPressEvent(self, ev): |
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 | 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
|
4740 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4741 | @param ev key event (QKeyEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4742 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4743 | txt = ev.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4744 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4745 | # See it is text to insert. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4746 | if len(txt) and txt >= " ": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4747 | QsciScintillaCompat.keyPressEvent(self, ev) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4748 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4749 | ev.ignore() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4750 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4751 | def focusInEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4752 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4753 | Protected method called when the editor receives focus. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4754 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4755 | 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
|
4756 | 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
|
4757 | 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
|
4758 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4759 | @param event the event object (QFocusEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4760 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4761 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4762 | self.vm.editActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4763 | self.vm.editorActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4764 | self.vm.copyActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4765 | 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
|
4766 | self.vm.searchActGrp.setEnabled(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4767 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4768 | self.setCaretWidth(self.caretWidth) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4769 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4770 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4771 | self.__updateReadOnly(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4772 | if self.vm.editorsCheckFocusInEnabled() and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4773 | not self.inReopenPrompt and self.fileName and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4774 | QFileInfo(self.fileName).lastModified().toString() != \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4775 | self.lastModified.toString(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4776 | if Preferences.getEditor("AutoReopen") and not self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4777 | self.refresh() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4778 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4779 | self.inReopenPrompt = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4780 | msg = self.trUtf8(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4781 | """<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
|
4782 | """ eric5. Reread it?</p>""").format(self.fileName) |
109
9c72858d4b7a
Corrected logic related to rereading a file after an external change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
4783 | default = QMessageBox.Yes |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4784 | if self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4785 | msg += self.trUtf8(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4786 | """<br><b>Warning:</b> You will loose""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4787 | """ your changes upon reopening it.""") |
109
9c72858d4b7a
Corrected logic related to rereading a file after an external change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
4788 | default = QMessageBox.No |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4789 | res = QMessageBox.warning(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4790 | self.trUtf8("File changed"), msg, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4791 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4792 | QMessageBox.Yes | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4793 | QMessageBox.No), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4794 | default) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4795 | if res == QMessageBox.Yes: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4796 | self.refresh() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4797 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4798 | # do not prompt for this change again... |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4799 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4800 | self.inReopenPrompt = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4801 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4802 | QsciScintillaCompat.focusInEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4803 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4804 | def focusOutEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4805 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4806 | Public method called when the editor loses focus. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4807 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4808 | @param event the event object (QFocusEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4809 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4810 | self.vm.editorActGrp.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4811 | self.setCaretWidth(0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4812 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4813 | QsciScintillaCompat.focusOutEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4814 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4815 | def changeEvent(self, evt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4816 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4817 | Protected method called to process an event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4818 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4819 | This implements special handling for the events showMaximized, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4820 | showMinimized and showNormal. The windows caption is shortened |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4821 | 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
|
4822 | 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
|
4823 | with the QWorkspace. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4824 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4825 | @param evt the event, that was generated (QEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4826 | @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
|
4827 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4828 | if evt.type() == QEvent.WindowStateChange and \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4829 | self.fileName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4830 | if self.windowState() == Qt.WindowStates(Qt.WindowMinimized): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4831 | cap = os.path.basename(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4832 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4833 | cap = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4834 | if self.isReadOnly(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4835 | cap = self.trUtf8("{0} (ro)").format(cap) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4836 | self.setWindowTitle(cap) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4837 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4838 | QsciScintillaCompat.changeEvent(self, evt) |
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 | def mousePressEvent(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 | Protected method to handle the mouse press event. |
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 | @param event the mouse press event (QMouseEvent) |
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 | self.vm.eventFilter(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4847 | QsciScintillaCompat.mousePressEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4848 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4849 | def __updateReadOnly(self, bForce = True): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4850 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4851 | 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
|
4852 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4853 | 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
|
4854 | the attributes have actually changed, such as during |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4855 | initialization time. A signal is emitted after the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4856 | caption change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4857 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4858 | @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
|
4859 | signal if there was an attribute change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4860 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4861 | if self.fileName is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4862 | return |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
4863 | 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
|
4864 | if not bForce and (readOnly == self.isReadOnly()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4865 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4866 | cap = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4867 | if readOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4868 | cap = self.trUtf8("{0} (ro)".format(cap)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4869 | self.setReadOnly(readOnly) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4870 | self.setWindowTitle(cap) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4871 | self.emit(SIGNAL('captionChanged'), cap, self) |
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 | def refresh(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4874 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4875 | Public slot to refresh the editor contents. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4876 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4877 | # save cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4878 | cline, cindex = self.getCursorPosition() |
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 | # save bookmarks and breakpoints and clear them |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4881 | bmlist = self.getBookmarks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4882 | self.clearBookmarks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4883 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4884 | # clear syntax error markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4885 | self.clearSyntaxError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4886 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4887 | # clear flakes warning markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4888 | self.clearFlakesWarnings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4889 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4890 | # clear breakpoint markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4891 | for handle in list(self.breaks.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4892 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4893 | self.breaks = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4894 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4895 | # reread the file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4896 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4897 | self.readFile(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4898 | except IOError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4899 | # do not prompt for this change again... |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4900 | self.lastModified = QDateTime.currentDateTime() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4901 | self.setModified(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4902 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4903 | # reset cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4904 | self.setCursorPosition(cline, cindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4905 | self.ensureCursorVisible() |
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 | # reset bookmarks and breakpoints to their old position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4908 | if bmlist: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4909 | for bm in bmlist: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4910 | self.toggleBookmark(bm) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4911 | self.__restoreBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4912 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4913 | self.emit(SIGNAL('editorSaved'), self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4914 | self.__autoSyntaxCheck() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4915 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4916 | def setMonospaced(self, on): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4917 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4918 | Public method to set/reset a monospaced font. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4919 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4920 | @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
|
4921 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4922 | if on: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4923 | f = Preferences.getEditorOtherFonts("MonospacedFont") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4924 | self.monospacedStyles(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4925 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4926 | if not self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4927 | self.clearStyles() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4928 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4929 | self.setFont(Preferences.getEditorOtherFonts("DefaultFont")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4930 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4931 | self.useMonospaced = on |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4932 | |
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 | ## Drag and Drop Support |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4935 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4936 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4937 | def dragEnterEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4938 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4939 | Protected method to handle the drag enter event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4940 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4941 | @param event the drag enter event (QDragEnterEvent) |
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 | self.inDragDrop = event.mimeData().hasUrls() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4944 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4945 | event.acceptProposedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4946 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4947 | QsciScintillaCompat.dragEnterEvent(self, event) |
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 | def dragMoveEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4950 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4951 | Protected method to handle the drag move event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4952 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4953 | @param event the drag move event (QDragMoveEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4954 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4955 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4956 | event.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4957 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4958 | QsciScintillaCompat.dragMoveEvent(self, event) |
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 | def dragLeaveEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4961 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4962 | Protected method to handle the drag leave event. |
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 | @param event the drag leave event (QDragLeaveEvent) |
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 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4967 | self.inDragDrop = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4968 | event.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4969 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4970 | QsciScintillaCompat.dragLeaveEvent(self, event) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4971 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4972 | def dropEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4973 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4974 | Protected method to handle the drop 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 | @param event the drop event (QDropEvent) |
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 | if event.mimeData().hasUrls(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4979 | for url in event.mimeData().urls(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4980 | fname = url.toLocalFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4981 | if fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4982 | if not QFileInfo(fname).isDir(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4983 | self.vm.openSourceFile(fname) |
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 | QMessageBox.information(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4986 | self.trUtf8("Drop Error"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4987 | 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
|
4988 | .format(fname)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4989 | event.acceptProposedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4990 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4991 | QsciScintillaCompat.dropEvent(self, event) |
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 | self.inDragDrop = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4994 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4995 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4996 | ## Support for Qt resources files |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4997 | ################################################################# |
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 __initContextMenuResources(self): |
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 | 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
|
5002 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5003 | menu = QMenu(self.trUtf8('Resources')) |
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 | menu.addAction(self.trUtf8('Add file...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5006 | self.__addFileResource) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5007 | menu.addAction(self.trUtf8('Add files...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5008 | self.__addFileResources) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5009 | menu.addAction(self.trUtf8('Add aliased file...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5010 | self.__addFileAliasResource) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5011 | menu.addAction(self.trUtf8('Add localized resource...'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5012 | self.__addLocalizedResource) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5013 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5014 | menu.addAction(self.trUtf8('Add resource frame'), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5015 | self.__addResourceFrame) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5016 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5017 | self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuResources) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5018 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5019 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5020 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5021 | def __showContextMenuResources(self): |
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 | 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
|
5024 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5025 | self.emit(SIGNAL("showMenu"), "Resources", self.resourcesMenu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5026 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5027 | def __addFileResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5028 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5029 | 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
|
5030 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5031 | dirStr = os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5032 | file = QFileDialog.getOpenFileName(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5033 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5034 | self.trUtf8("Add file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5035 | dirStr, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5036 | "") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5037 | if file: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5038 | relFile = QDir(dirStr).relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5039 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5040 | self.insert(" <file>{0}</file>\n".format(relFile)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5041 | self.setCursorPosition(line + 1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5042 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5043 | def __addFileResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5044 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5045 | 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
|
5046 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5047 | dirStr = os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5048 | files = QFileDialog.getOpenFileNames(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5049 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5050 | self.trUtf8("Add file resources"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5051 | dirStr, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5052 | "") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5053 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5054 | myDir = QDir(dirStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5055 | filesText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5056 | for file in files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5057 | relFile = myDir.relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5058 | filesText += " <file>{0}</file>\n".format(relFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5059 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5060 | self.insert(filesText) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5061 | self.setCursorPosition(line + len(files), index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5062 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5063 | def __addFileAliasResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5064 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5065 | 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
|
5066 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5067 | dirStr = os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5068 | file = QFileDialog.getOpenFileName(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5069 | self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5070 | self.trUtf8("Add aliased file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5071 | dirStr, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5072 | "") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5073 | if file: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5074 | relFile = QDir(dirStr).relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5075 | alias, ok = QInputDialog.getText(\ |
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 aliased file resource"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5078 | 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
|
5079 | QLineEdit.Normal, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5080 | relFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5081 | if ok and alias: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5082 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5083 | self.insert(' <file alias="{1}">{0}</file>\n'\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5084 | .format(relFile, alias)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5085 | self.setCursorPosition(line + 1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5086 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5087 | def __addLocalizedResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5088 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5089 | 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
|
5090 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5091 | from Project.AddLanguageDialog import AddLanguageDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5092 | dlg = AddLanguageDialog(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5093 | if dlg.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5094 | lang = dlg.getSelectedLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5095 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5096 | 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
|
5097 | self.setCursorPosition(line + 2, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5098 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5099 | def __addResourceFrame(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5100 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5101 | 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
|
5102 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5103 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5104 | self.insert('<!DOCTYPE RCC>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5105 | '<RCC version="1.0">\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5106 | '<qresource>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5107 | '</qresource>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5108 | '</RCC>\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5109 | self.setCursorPosition(line + 5, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5110 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5111 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5112 | ## Support for diagrams below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5115 | def __showClassDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5116 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5117 | 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
|
5118 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5119 | from Graphics.UMLClassDiagram import UMLClassDiagram |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5120 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5121 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5122 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5123 | self.classDiagram = UMLClassDiagram(self.fileName, self, noAttrs = False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5124 | self.classDiagram.show() |
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 __showPackageDiagram(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 Package Diagram 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 | from Graphics.PackageDiagram import PackageDiagram |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5131 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5132 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5133 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5134 | 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
|
5135 | or os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5136 | res = QMessageBox.question(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5137 | self.trUtf8("Package Diagram"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5138 | self.trUtf8("""Include class attributes?"""), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5139 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5140 | QMessageBox.No | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5141 | QMessageBox.Yes), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5142 | QMessageBox.Yes) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5143 | self.packageDiagram = PackageDiagram(package, self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5144 | noAttrs = (res == QMessageBox.No)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5145 | self.packageDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5146 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5147 | def __showImportsDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5148 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5149 | 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
|
5150 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5151 | from Graphics.ImportsDiagram import ImportsDiagram |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5152 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5153 | return |
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 | 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
|
5156 | or os.path.dirname(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5157 | res = QMessageBox.question(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5158 | self.trUtf8("Imports Diagram"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5159 | self.trUtf8("""Include imports from external modules?"""), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5160 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5161 | QMessageBox.No | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5162 | QMessageBox.Yes), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5163 | QMessageBox.No) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5164 | self.importsDiagram = ImportsDiagram(package, self, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5165 | showExternalImports = (res == QMessageBox.Yes)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5166 | self.importsDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5167 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5168 | def __showApplicationDiagram(self): |
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 | 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
|
5171 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5172 | from Graphics.ApplicationDiagram import ApplicationDiagram |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5173 | res = QMessageBox.question(None, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5174 | self.trUtf8("Application Diagram"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5175 | self.trUtf8("""Include module names?"""), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5176 | QMessageBox.StandardButtons(\ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5177 | QMessageBox.No | \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5178 | QMessageBox.Yes), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5179 | QMessageBox.Yes) |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5180 | self.applicationDiagram = ApplicationDiagram(self.project, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5181 | self, noModules = (res == QMessageBox.No)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5182 | self.applicationDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5183 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5184 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5185 | ## Typing aids related methods below |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5188 | def __toggleTypingAids(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5189 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5190 | Private slot to toggle the typing aids. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5191 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5192 | if self.menuActs["TypingAidsEnabled"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5193 | self.completer.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5194 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5195 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5196 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5197 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5198 | ## Autocompleting templates |
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 | def editorCommand(self, cmd): |
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 | Public method to perform a simple editor command. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5204 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5205 | @param cmd the scintilla command to be performed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5206 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5207 | if cmd == QsciScintilla.SCI_TAB: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5208 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5209 | tmplName = self.getWordLeft(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5210 | if tmplName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5211 | if e5App().getObject("TemplateViewer").hasTemplate(tmplName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5212 | self.__applyTemplate(tmplName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5213 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5214 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5215 | templateNames = \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5216 | e5App().getObject("TemplateViewer").getTemplateNames(tmplName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5217 | if len(templateNames) == 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5218 | self.__applyTemplate(templateNames[0]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5219 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5220 | elif len(templateNames) > 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5221 | self.showUserList(TemplateCompletionListID, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5222 | ["%s?%d" % (t, self.TemplateImageID) for t in templateNames]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5223 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5224 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5225 | QsciScintillaCompat.editorCommand(self, cmd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5226 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5227 | def __completionListSelected(self, id, txt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5228 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5229 | 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
|
5230 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5231 | @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
|
5232 | @param txt the selected text (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5233 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5234 | if id == TemplateCompletionListID: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5235 | self.__applyTemplate(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5236 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5237 | def __applyTemplate(self, templateName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5238 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5239 | Private method to apply a template by name. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5240 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5241 | @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
|
5242 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5243 | if e5App().getObject("TemplateViewer").hasTemplate(templateName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5244 | self.extendSelectionWordLeft() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5245 | e5App().getObject("TemplateViewer").applyNamedTemplate(templateName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5246 | |
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 | ## Project related methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5249 | ####################################################################### |
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 | def __projectPropertiesChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5252 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5253 | 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
|
5254 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5255 | if self.spell: |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5256 | pwl, pel = self.project.getProjectDictionaries() |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5257 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5258 | pwl = pwl, pel = pel) |
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 | def addedToProject(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5261 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5262 | 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
|
5263 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5264 | if self.spell: |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5265 | pwl, pel = self.project.getProjectDictionaries() |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5266 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5267 | pwl = pwl, pel = pel) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5268 | self.connect(project, SIGNAL("projectPropertiesChanged"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5269 | self.__projectPropertiesChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5270 | |
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 | ## Spellchecking related methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5273 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5274 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5275 | def __setSpellingLanguage(self, language, pwl = "", pel = ""): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5276 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5277 | Private slot to set the spell checking language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5278 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5279 | @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
|
5280 | @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
|
5281 | @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
|
5282 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5283 | if self.spell and self.spell.getLanguage() != language: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5284 | self.spell.setLanguage(language, pwl = pwl, pel = pel) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5285 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5286 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5287 | def __setSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5288 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5289 | Private method to initialize the spell checking functionality. |
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 | if Preferences.getEditor("SpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5292 | self.__spellCheckStringsOnly = Preferences.getEditor("SpellCheckStringsOnly") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5293 | if self.spell is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5294 | self.spell = SpellChecker(self, self.spellingIndicator, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5295 | checkRegion = self.isSpellCheckRegion) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5296 | self.setSpellingForProject() |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5297 | self.connect(self.project, SIGNAL("projectPropertiesChanged"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5298 | self.__projectPropertiesChanged) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5299 | self.spell.setMinimumWordSize( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5300 | Preferences.getEditor("SpellCheckingMinWordSize")) |
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 | self.setAutoSpellChecking() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5303 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5304 | self.spell = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5305 | self.clearAllIndicators(self.spellingIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5306 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5307 | def setSpellingForProject(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5308 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5309 | 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
|
5310 | to the current project. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5311 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5312 | if self.fileName and \ |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5313 | self.project.isOpen() and \ |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5314 | self.project.isProjectSource(self.fileName): |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5315 | pwl, pel = self.project.getProjectDictionaries() |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5316 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5317 | pwl = pwl, pel = pel) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5318 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5319 | def setAutoSpellChecking(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5320 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5321 | Public method to set the automatic spell checking. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5322 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5323 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5324 | self.connect(self, SIGNAL("SCN_CHARADDED(int)"), self.__spellCharAdded) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5325 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5326 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5327 | self.disconnect(self, SIGNAL("SCN_CHARADDED(int)"), self.__spellCharAdded) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5328 | self.clearAllIndicators(self.spellingIndicator) |
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 | def isSpellCheckRegion(self, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5331 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5332 | 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
|
5333 | be spell checked. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5334 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5335 | @param pos position to be checked (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5336 | @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
|
5337 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5338 | if self.__spellCheckStringsOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5339 | style = self.styleAt(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5340 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5341 | return self.lexer_.isCommentStyle(style) or \ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5342 | self.lexer_.isStringStyle(style) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5343 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5344 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5345 | def __spellCharAdded(self, charNumber): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5346 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5347 | 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
|
5348 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5349 | @param charNumber value of the character entered (integer) |
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 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5352 | if not chr(charNumber).isalnum(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5353 | self.spell.checkWord(self.positionBefore(self.currentPosition()), True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5354 | elif self.hasIndicator(self.spellingIndicator, self.currentPosition()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5355 | self.spell.checkWord(self.currentPosition()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5356 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5357 | def checkSpelling(self): |
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 | 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
|
5360 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5361 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5362 | cline, cindex = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5363 | dlg = SpellCheckingDialog(self.spell, 0, self.length(), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5364 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5365 | self.setCursorPosition(cline, cindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5366 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5367 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5368 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5369 | def __checkSpellingSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5370 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5371 | Private slot to spell check the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5372 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5373 | sline, sindex, eline, eindex = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5374 | startPos = self.positionFromLineIndex(sline, sindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5375 | endPos = self.positionFromLineIndex(eline, eindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5376 | dlg = SpellCheckingDialog(self.spell, startPos, endPos, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5377 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5378 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5379 | def __checkSpellingWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5380 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5381 | 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
|
5382 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5383 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5384 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5385 | wordStartPos = self.positionFromLineIndex(line, wordStart) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5386 | wordEndPos = self.positionFromLineIndex(line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5387 | dlg = SpellCheckingDialog(self.spell, wordStartPos, wordEndPos, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5388 | dlg.exec_() |
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 __showContextMenuSpelling(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 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
|
5393 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5394 | self.spellingMenu.clear() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5395 | self.spellingSuggActs = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5396 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5397 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5398 | suggestions = self.spell.getSuggestions(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5399 | for suggestion in suggestions[:5]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5400 | self.spellingSuggActs.append(self.spellingMenu.addAction(suggestion)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5401 | if suggestions: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5402 | self.spellingMenu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5403 | self.spellingMenu.addAction(UI.PixmapCache.getIcon("spellchecking.png"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5404 | self.trUtf8("Check spelling..."), self.__checkSpellingWord) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5405 | self.spellingMenu.addAction(self.trUtf8("Add to dictionary"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5406 | self.__addToSpellingDictionary) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5407 | self.spellingMenu.addAction(self.trUtf8("Ignore All"), |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5408 | self.__ignoreSpellingAlways) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5409 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5410 | self.emit(SIGNAL("showMenu"), "Spelling", self.spellingMenu, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5411 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5412 | def __contextMenuSpellingTriggered(self, action): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5413 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5414 | 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
|
5415 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5416 | @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
|
5417 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5418 | if action in self.spellingSuggActs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5419 | replacement = action.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5420 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5421 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5422 | self.setSelection(line, wordStart, line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5423 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5424 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5425 | self.insert(replacement) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5426 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5427 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5428 | def __addToSpellingDictionary(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5429 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5430 | 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
|
5431 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5432 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5433 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5434 | self.spell.add(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5435 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5436 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5437 | self.clearIndicator(self.spellingIndicator, line, wordStart, line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5438 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5439 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5440 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5441 | def __removeFromSpellingDictionary(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5442 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5443 | 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
|
5444 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5445 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5446 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5447 | self.spell.remove(word) |
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 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5450 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5451 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5452 | def __ignoreSpellingAlways(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5453 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5454 | 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
|
5455 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5456 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5457 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5458 | self.spell.ignoreAlways(word) |
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() |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5461 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5462 | ####################################################################### |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5463 | ## Cooperation related methods |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5464 | ####################################################################### |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5465 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5466 | def getSharingStatus(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5467 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5468 | Public method to get some share status info. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5469 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5470 | @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
|
5471 | 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
|
5472 | 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
|
5473 | (boolean, boolean, boolean, boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5474 | """ |
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
|
5475 | 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
|
5476 | self.project.isOpen() and \ |
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5477 | self.project.isProjectFile(self.fileName), \ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5478 | self.__isShared, self.__inSharedEdit, self.__inRemoteSharedEdit |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5479 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5480 | def shareConnected(self, connected): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5481 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5482 | 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
|
5483 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5484 | @param connected flag indicating the connected state (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5485 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5486 | if not connected: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5487 | self.__inRemoteSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5488 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5489 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5490 | self.cancelSharedEdit(send = False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5491 | self.__isSyncing = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5492 | self.__receivedWhileSyncing = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5493 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5494 | def shareEditor(self, share): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5495 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5496 | 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
|
5497 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5498 | @param share flag indicating the share status (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5499 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5500 | self.__isShared = share |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5501 | if not share: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5502 | self.shareConnected(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5503 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5504 | def startSharedEdit(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5505 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5506 | 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
|
5507 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5508 | self.__inSharedEdit = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5509 | self.__savedText = self.text() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5510 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5511 | QCryptographicHash.hash( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5512 | Utilities.encode(self.__savedText, self.encoding)[0], |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5513 | QCryptographicHash.Sha1).toHex(), |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5514 | encoding = "utf-8") |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5515 | self.__send(Editor.StartEditToken, hash) |
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 | def sendSharedEdit(self): |
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 | 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
|
5520 | send the changes. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5521 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5522 | commands = self.__calculateChanges(self.__savedText, self.text()) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5523 | self.__send(Editor.EndEditToken, commands) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5524 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5525 | self.__savedText = "" |
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 | def cancelSharedEdit(self, send = True): |
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 | 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
|
5530 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5531 | @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
|
5532 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5533 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5534 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5535 | if send: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5536 | self.__send(Editor.CancelEditToken) |
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 __send(self, token, args = None): |
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 | 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
|
5541 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5542 | @param token command token (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5543 | @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
|
5544 | """ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5545 | if self.vm.isConnected(): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5546 | msg = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5547 | if token in (Editor.StartEditToken, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5548 | Editor.EndEditToken, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5549 | Editor.RequestSyncToken, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5550 | Editor.SyncToken): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5551 | msg = "{0}{1}{2}".format( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5552 | token, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5553 | Editor.Separator, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5554 | args |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5555 | ) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5556 | elif token == Editor.CancelEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5557 | msg = "{0}{1}c".format( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5558 | token, |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5559 | Editor.Separator |
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 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5562 | 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
|
5563 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5564 | def receive(self, command): |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5565 | """ |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5566 | 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
|
5567 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5568 | @param command command string (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5569 | """ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5570 | if self.__isShared: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5571 | if self.__isSyncing and \ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5572 | not command.startswith(Editor.SyncToken + Editor.Separator): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5573 | self.__receivedWhileSyncing.append(command) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5574 | else: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5575 | self.__dispatchCommand(command) |
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 | def __dispatchCommand(self, command): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5578 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5579 | Private method to dispatch received commands. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5580 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5581 | @param command command to be processed (string) |
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 | token, argsString = command.split(Editor.Separator, 1) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5584 | if token == Editor.StartEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5585 | self.__processStartEditCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5586 | elif token == Editor.CancelEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5587 | self.shareConnected(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5588 | elif token == Editor.EndEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5589 | self.__processEndEditCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5590 | elif token == Editor.RequestSyncToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5591 | self.__processRequestSyncCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5592 | elif token == Editor.SyncToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5593 | self.__processSyncCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5594 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5595 | def __processStartEditCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5596 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5597 | Private slot to process a remote StartEdit command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5598 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5599 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5600 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5601 | if not self.__inSharedEdit and not self.__inRemoteSharedEdit: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5602 | self.__inRemoteSharedEdit = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5603 | self.setReadOnly(True) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5604 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5605 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5606 | QCryptographicHash.hash( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5607 | Utilities.encode(self.text(), self.encoding)[0], |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5608 | QCryptographicHash.Sha1).toHex(), |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5609 | encoding = "utf-8") |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5610 | if hash != argsString: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5611 | # 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
|
5612 | self.__isSyncing = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5613 | self.__send(Editor.RequestSyncToken, argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5614 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5615 | def __calculateChanges(self, old, new): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5616 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5617 | 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
|
5618 | new text. |
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 old old text (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5621 | @param new new text (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5622 | @return commands to change old into new (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5623 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5624 | oldL = old.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5625 | newL = new.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5626 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5627 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5628 | formatStr = "@@{0} {1} {2} {3}" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5629 | commands = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5630 | 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
|
5631 | if token == "insert": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5632 | commands.append(formatStr.format("i", j1, j2 - j1, -1)) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5633 | commands.extend(newL[j1:j2]) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5634 | elif token == "delete": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5635 | commands.append(formatStr.format("d", j1, i2 - i1, -1)) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5636 | elif token == "replace": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5637 | 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
|
5638 | commands.extend(newL[j1:j2]) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5639 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5640 | 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
|
5641 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5642 | def __processEndEditCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5643 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5644 | Private slot to process a remote EndEdit command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5645 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5646 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5647 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5648 | commands = argsString.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5649 | sep = self.getLineSeparator() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5650 | cur = self.getCursorPosition() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5651 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5652 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5653 | self.beginUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5654 | while commands: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5655 | commandLine = commands.pop(0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5656 | if not commandLine.startswith("@@"): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5657 | continue |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5658 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5659 | command, *args = commandLine.split() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5660 | pos, l1, l2 = [int(arg) for arg in args] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5661 | if command == "@@i": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5662 | txt = sep.join(commands[0:l1]) + sep |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5663 | self.insertAt(txt, pos, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5664 | del commands[0:l1] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5665 | elif command == "@@d": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5666 | self.setSelection(pos, 0, pos + l1, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5667 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5668 | elif command == "@@r": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5669 | self.setSelection(pos, 0, pos + l1, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5670 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5671 | txt = sep.join(commands[0:l2]) + sep |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5672 | self.insertAt(txt, pos, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5673 | del commands[0:l2] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5674 | self.endUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5675 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5676 | self.__inRemoteSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5677 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5678 | self.setCursorPosition(*cur) |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
5679 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5680 | def __processRequestSyncCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5681 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5682 | Private slot to process a remote RequestSync command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5683 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5684 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5685 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5686 | if self.__inSharedEdit: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5687 | hash = str( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5688 | QCryptographicHash.hash( |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5689 | Utilities.encode(self.__savedText, self.encoding)[0], |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5690 | QCryptographicHash.Sha1).toHex(), |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5691 | encoding = "utf-8") |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5692 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5693 | if hash == argsString: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5694 | self.__send(Editor.SyncToken, self.__savedText) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5695 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5696 | def __processSyncCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5697 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5698 | Private slot to process a remote Sync command |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5699 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5700 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5701 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5702 | if self.__isSyncing: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5703 | cur = self.getCursorPosition() |
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 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5706 | self.beginUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5707 | self.selectAll() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5708 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5709 | self.insertAt(argsString, 0, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5710 | self.endUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5711 | self.setReadOnly(True) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5712 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5713 | self.setCursorPosition(*cur) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5714 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5715 | while self.__receivedWhileSyncing: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5716 | command = self.__receivedWhileSyncing.pop(0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
5717 | self.__dispatchCommand(command) |
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 | self.__isSyncing = False |