Sat, 04 Jul 2020 11:45:34 +0200
Merged with default branch to prepare a new release.
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 | |
7360
9190402e4505
Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7347
diff
changeset
|
3 | # Copyright (c) 2002 - 2020 Detlev Offenbach <detlev@die-offenbachs.de> |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4 | # |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6 | """ |
3670
f0cb7579c0b4
Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3656
diff
changeset
|
7 | Module implementing the editor component of the eric6 IDE. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
8 | """ |
7229
53054eb5b15a
Removed obsolete "from __future__ import ..." statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7225
diff
changeset
|
9 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
10 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
11 | import os |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
12 | import re |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
13 | import difflib |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
14 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
15 | from PyQt5.QtCore import ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
16 | QDir, QTimer, QModelIndex, QFileInfo, pyqtSignal, pyqtSlot, |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
17 | QCryptographicHash, QEvent, QDateTime, QRegExp, Qt, QPoint |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
18 | ) |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
19 | from PyQt5.QtGui import QCursor, QPalette, QFont, QPixmap, QPainter |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
20 | from PyQt5.QtWidgets import ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
21 | QLineEdit, QActionGroup, QDialog, QInputDialog, QApplication, QMenu |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
22 | ) |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
23 | from PyQt5.QtPrintSupport import QPrinter, QPrintDialog, QAbstractPrintDialog |
7225
aa36a9414d99
Editor: fixed the recent fix again.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7224
diff
changeset
|
24 | from PyQt5.Qsci import QsciScintilla, QsciMacro, QsciStyledText |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
25 | |
2084
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2077
diff
changeset
|
26 | from E5Gui.E5Application import e5App |
536
6d8d39753c82
Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
27 | from E5Gui import E5FileDialog, E5MessageBox |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
28 | from E5Utilities.E5Cache import E5Cache |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
29 | |
7225
aa36a9414d99
Editor: fixed the recent fix again.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7224
diff
changeset
|
30 | from .QsciScintillaCompat import QsciScintillaCompat, QSCINTILLA_VERSION |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
31 | from .EditorMarkerMap import EditorMarkerMap |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
32 | from .SpellChecker import SpellChecker |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
33 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
34 | import Preferences |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
35 | import Utilities |
4290
5d4f4230a5ed
Moved the code to create a display string for a modifier and mouse button combination to a separate file because it will be needed in other places than just the editor as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4288
diff
changeset
|
36 | from Utilities import MouseUtilities |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
37 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
38 | import UI.PixmapCache |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
39 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
40 | from ThirdParty.EditorConfig import editorconfig |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
41 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
42 | EditorAutoCompletionListID = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
43 | TemplateCompletionListID = 2 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
44 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
45 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
46 | class Editor(QsciScintillaCompat): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
47 | """ |
3670
f0cb7579c0b4
Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3656
diff
changeset
|
48 | Class implementing the editor component of the eric6 IDE. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
49 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
50 | @signal modificationStatusChanged(bool, QsciScintillaCompat) emitted when |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
51 | the modification status has changed |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
52 | @signal undoAvailable(bool) emitted to signal the undo availability |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
53 | @signal redoAvailable(bool) emitted to signal the redo availability |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
54 | @signal cursorChanged(str, int, int) emitted when the cursor position |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
55 | was changed |
2768
eab35f6e709f
Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2659
diff
changeset
|
56 | @signal cursorLineChanged(int) emitted when the cursor line was changed |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
57 | @signal editorAboutToBeSaved(str) emitted before the editor is saved |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
58 | @signal editorSaved(str) emitted after the editor has been saved |
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
59 | @signal editorRenamed(str) emitted after the editor got a new name |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
60 | (i.e. after a 'Save As') |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
61 | @signal captionChanged(str, QsciScintillaCompat) emitted when the caption |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
62 | is updated. Typically due to a readOnly attribute change. |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
63 | @signal breakpointToggled(QsciScintillaCompat) emitted when a breakpoint |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
64 | is toggled |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
65 | @signal bookmarkToggled(QsciScintillaCompat) emitted when a bookmark is |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
66 | toggled |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
67 | @signal syntaxerrorToggled(QsciScintillaCompat) emitted when a syntax error |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
68 | was discovered |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
69 | @signal autoCompletionAPIsAvailable(bool) emitted after the autocompletion |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
70 | function has been configured |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
71 | @signal coverageMarkersShown(bool) emitted after the coverage markers have |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
72 | been shown or cleared |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
73 | @signal taskMarkersUpdated(QsciScintillaCompat) emitted when the task |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
74 | markers were updated |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
75 | @signal changeMarkersUpdated(QsciScintillaCompat) emitted when the change |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
76 | markers were updated |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
77 | @signal showMenu(str, QMenu, QsciScintillaCompat) emitted when a menu is |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
78 | about to be shown. The name of the menu, a reference to the menu and |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
79 | a reference to the editor are given. |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
80 | @signal languageChanged(str) emitted when the editors language was set. The |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
81 | language is passed as a parameter. |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
82 | @signal eolChanged(str) emitted when the editors eol type was set. The eol |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
83 | string is passed as a parameter. |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
84 | @signal encodingChanged(str) emitted when the editors encoding was set. The |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
85 | encoding name is passed as a parameter. |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
86 | @signal spellLanguageChanged(str) emitted when the editor spell check |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
87 | language was set. The language is passed as a parameter. |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
88 | @signal lastEditPositionAvailable() emitted when a last edit position is |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
89 | available |
1807
9898a95461f1
Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1768
diff
changeset
|
90 | @signal refreshed() emitted to signal a refresh of the editor contents |
5416
16366120b523
Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
91 | @signal settingsRead() emitted to signal, that the settings have been read |
16366120b523
Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
92 | and set |
6932
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
93 | @signal mouseDoubleClick(position, buttons) emitted to signal a mouse |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
94 | double click somewhere in the editor area |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
95 | """ |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
96 | modificationStatusChanged = pyqtSignal(bool, QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
97 | undoAvailable = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
98 | redoAvailable = pyqtSignal(bool) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
99 | cursorChanged = pyqtSignal(str, int, int) |
2768
eab35f6e709f
Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2659
diff
changeset
|
100 | cursorLineChanged = pyqtSignal(int) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
101 | editorAboutToBeSaved = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
102 | editorSaved = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
103 | editorRenamed = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
104 | captionChanged = pyqtSignal(str, QsciScintillaCompat) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
105 | breakpointToggled = pyqtSignal(QsciScintillaCompat) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
106 | bookmarkToggled = pyqtSignal(QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
107 | syntaxerrorToggled = pyqtSignal(QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
108 | autoCompletionAPIsAvailable = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
109 | coverageMarkersShown = pyqtSignal(bool) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
110 | taskMarkersUpdated = pyqtSignal(QsciScintillaCompat) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
111 | changeMarkersUpdated = pyqtSignal(QsciScintillaCompat) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
112 | showMenu = pyqtSignal(str, QMenu, QsciScintillaCompat) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
113 | languageChanged = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
114 | eolChanged = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
115 | encodingChanged = pyqtSignal(str) |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
116 | spellLanguageChanged = pyqtSignal(str) |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
117 | lastEditPositionAvailable = pyqtSignal() |
1807
9898a95461f1
Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1768
diff
changeset
|
118 | refreshed = pyqtSignal() |
5416
16366120b523
Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
119 | settingsRead = pyqtSignal() |
6932
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
120 | mouseDoubleClick = pyqtSignal(QPoint, int) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
121 | |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
122 | WarningCode = 1 |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
123 | WarningStyle = 2 |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
124 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
125 | # Autocompletion icon definitions |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
126 | ClassID = 1 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
127 | ClassProtectedID = 2 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
128 | ClassPrivateID = 3 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
129 | MethodID = 4 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
130 | MethodProtectedID = 5 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
131 | MethodPrivateID = 6 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
132 | AttributeID = 7 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
133 | AttributeProtectedID = 8 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
134 | AttributePrivateID = 9 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
135 | EnumID = 10 |
5894
0d4431926611
Two additional autocomplete icons.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5891
diff
changeset
|
136 | KeywordsID = 11 |
0d4431926611
Two additional autocomplete icons.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5891
diff
changeset
|
137 | ModuleID = 12 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
138 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
139 | FromDocumentID = 99 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
140 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
141 | TemplateImageID = 100 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
142 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
143 | # Cooperation related definitions |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
144 | Separator = "@@@" |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
145 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
146 | StartEditToken = "START_EDIT" |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
147 | EndEditToken = "END_EDIT" |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
148 | CancelEditToken = "CANCEL_EDIT" |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
149 | RequestSyncToken = "REQUEST_SYNC" |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
150 | SyncToken = "SYNC" |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
151 | |
6111
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
152 | VcsConflictMarkerLineRegExpList = ( |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
153 | r"""^<<<<<<< .*?$""", |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
154 | r"""^\|\|\|\|\|\|\| .*?$""", |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
155 | r"""^=======.*?$""", |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
156 | r"""^>>>>>>> .*?$""", |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
157 | ) |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
158 | |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
159 | def __init__(self, dbs, fn="", vm=None, |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
160 | filetype="", editor=None, tv=None): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
161 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
162 | Constructor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
163 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
164 | @param dbs reference to the debug server object |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
165 | @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
|
166 | a new (empty) editor is opened |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
167 | @param vm reference to the view manager object |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
168 | (ViewManager.ViewManager) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
169 | @param filetype type of the source file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
170 | @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
|
171 | @param tv reference to the task viewer object |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
172 | @exception IOError raised to indicate an issue accessing the file |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
173 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
174 | super(Editor, self).__init__() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
175 | self.setAttribute(Qt.WA_KeyCompression) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
176 | self.setUtf8(True) |
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 | self.dbs = dbs |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
179 | self.taskViewer = tv |
7306 | 180 | self.__setFileName(fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
181 | self.vm = vm |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
182 | self.filetype = filetype |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
183 | self.filetypeByFlag = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
184 | self.noName = "" |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
185 | self.project = e5App().getObject("Project") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
186 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
187 | # clear some variables |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
188 | self.lastHighlight = None # remember the last highlighted line |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
189 | self.lastErrorMarker = None # remember the last error line |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
190 | self.lastCurrMarker = None # remember the last current line |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
191 | |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
192 | self.breaks = {} |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
193 | # key: marker handle, |
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
194 | # value: (lineno, condition, temporary, |
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
195 | # enabled, ignorecount) |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
196 | self.bookmarks = [] |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
197 | # bookmarks are just a list of handles to the |
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
198 | # bookmark markers |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
199 | self.syntaxerrors = {} |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
200 | # key: marker handle |
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
201 | # value: list of (error message, error index) |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
202 | self.warnings = {} |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
203 | # key: marker handle |
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
204 | # value: list of (warning message, warning type) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
205 | self.notcoveredMarkers = [] # just a list of marker handles |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
206 | self.showingNotcoveredMarkers = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
207 | |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
208 | self.lexer_ = None |
7293
4738aac944e6
Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7278
diff
changeset
|
209 | self.apiLanguage = '' |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
210 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
211 | self.__loadEditorConfig() |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
212 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
213 | self.condHistory = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
214 | self.__lexerReset = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
215 | self.completer = None |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
216 | self.encoding = self.__getEditorConfig("DefaultEncoding") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
217 | self.lastModified = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
218 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
219 | self.inReopenPrompt = False |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
220 | # true if the prompt to reload a changed source is present |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
221 | self.inFileRenamed = False |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
222 | # true if we are propagating a rename action |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
223 | self.inLanguageChanged = False |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
224 | # true if we are propagating a language change |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
225 | self.inEolChanged = False |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
226 | # true if we are propagating an eol change |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
227 | self.inEncodingChanged = False |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
228 | # true if we are propagating an encoding change |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
229 | self.inDragDrop = False |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
230 | # true if we are in drop mode |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
231 | self.inLinesChanged = False |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
232 | # true if we are propagating a lines changed event |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
233 | self.__hasTaskMarkers = False |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
234 | # no task markers present |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
235 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
236 | self.macros = {} # list of defined macros |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
237 | self.curMacro = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
238 | self.recording = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
239 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
240 | self.acAPI = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
241 | |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
242 | self.__lastEditPosition = None |
3863
472eb955ff9c
Corrected the annotations scrollbar fix because it caused seg faults for short files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3861
diff
changeset
|
243 | self.__annotationLines = 0 |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
244 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
245 | # list of clones |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
246 | self.__clones = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
247 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
248 | # clear QScintilla defined keyboard commands |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
249 | # 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
|
250 | self.clearAlternateKeys() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
251 | self.clearKeys() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
252 | |
7393
e83e0ba6b90d
Editor: moved the creation of the marker map object.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
253 | self.__markerMap = EditorMarkerMap(self) |
e83e0ba6b90d
Editor: moved the creation of the marker map object.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
254 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
255 | # initialize the mark occurrences timer |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
256 | self.__markOccurrencesTimer = QTimer(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
257 | self.__markOccurrencesTimer.setSingleShot(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
258 | self.__markOccurrencesTimer.setInterval( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
259 | Preferences.getEditor("MarkOccurrencesTimeout")) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
260 | self.__markOccurrencesTimer.timeout.connect(self.__markOccurrences) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
261 | self.__markedText = "" |
4304
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
262 | self.__searchIndicatorLines = [] |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
263 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
264 | # initialize some spellchecking stuff |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
265 | self.spell = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
266 | self.lastLine = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
267 | self.lastIndex = 0 |
7347
1afdabb901dc
Editor: fixed an omission
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7339
diff
changeset
|
268 | self.__inSpellLanguageChanged = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
269 | |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
270 | # initialize some cooperation stuff |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
271 | self.__isSyncing = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
272 | self.__receivedWhileSyncing = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
273 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
274 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
275 | self.__isShared = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
276 | self.__inRemoteSharedEdit = False |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
277 | |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
278 | # connect signals before loading the text |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
279 | self.modificationChanged.connect(self.__modificationChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
280 | self.cursorPositionChanged.connect(self.__cursorPositionChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
281 | self.modificationAttempted.connect(self.__modificationReadOnly) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
282 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
283 | # define the margins markers |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
284 | self.__changeMarkerSaved = self.markerDefine( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
285 | self.__createChangeMarkerPixmap( |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
286 | "OnlineChangeTraceMarkerSaved")) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
287 | self.__changeMarkerUnsaved = self.markerDefine( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
288 | self.__createChangeMarkerPixmap( |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
289 | "OnlineChangeTraceMarkerUnsaved")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
290 | self.breakpoint = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
291 | UI.PixmapCache.getPixmap("break")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
292 | self.cbreakpoint = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
293 | UI.PixmapCache.getPixmap("cBreak")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
294 | self.tbreakpoint = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
295 | UI.PixmapCache.getPixmap("tBreak")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
296 | self.tcbreakpoint = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
297 | UI.PixmapCache.getPixmap("tCBreak")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
298 | self.dbreakpoint = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
299 | UI.PixmapCache.getPixmap("breakDisabled")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
300 | self.bookmark = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
301 | UI.PixmapCache.getPixmap("bookmark16")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
302 | self.syntaxerror = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
303 | UI.PixmapCache.getPixmap("syntaxError")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
304 | self.notcovered = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
305 | UI.PixmapCache.getPixmap("notcovered")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
306 | self.taskmarker = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
307 | UI.PixmapCache.getPixmap("task")) |
5706
59458b006d76
Changed the indication of the current instruction line and the error line to use a green or red arrow instead of a colored background.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5631
diff
changeset
|
308 | self.warning = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
309 | UI.PixmapCache.getPixmap("warning")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
310 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
311 | # define the line markers |
5733
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
312 | if Preferences.getEditor("LineMarkersBackground"): |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
313 | self.currentline = self.markerDefine(QsciScintilla.Background) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
314 | self.errorline = self.markerDefine(QsciScintilla.Background) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
315 | self.__setLineMarkerColours() |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
316 | else: |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
317 | self.currentline = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
318 | UI.PixmapCache.getPixmap("currentLineMarker")) |
5733
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
319 | self.errorline = self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
320 | UI.PixmapCache.getPixmap("errorLineMarker")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
321 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
322 | self.breakpointMask = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
323 | (1 << self.breakpoint) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
324 | (1 << self.cbreakpoint) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
325 | (1 << self.tbreakpoint) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
326 | (1 << self.tcbreakpoint) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
327 | (1 << self.dbreakpoint) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
328 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
329 | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
330 | self.changeMarkersMask = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
331 | (1 << self.__changeMarkerSaved) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
332 | (1 << self.__changeMarkerUnsaved) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
333 | ) |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
334 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
335 | # configure the margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
336 | self.__setMarginsDisplay() |
2640
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
337 | self.linesChanged.connect(self.__resizeLinenoMargin) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
338 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
339 | self.marginClicked.connect(self.__marginClicked) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
340 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
341 | # set the eol mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
342 | self.__setEolMode() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
343 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
344 | # set the text display |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
345 | self.__setTextDisplay() |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
346 | |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
347 | # initialize the online syntax check timer |
3972
efc9c803ebdc
Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3971
diff
changeset
|
348 | try: |
efc9c803ebdc
Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3971
diff
changeset
|
349 | self.syntaxCheckService = e5App().getObject('SyntaxCheckService') |
4503
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
350 | self.syntaxCheckService.syntaxChecked.connect( |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
351 | self.__processSyntaxCheckResult) |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
352 | self.syntaxCheckService.error.connect( |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
353 | self.__processSyntaxCheckError) |
3972
efc9c803ebdc
Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3971
diff
changeset
|
354 | self.__initOnlineSyntaxCheck() |
efc9c803ebdc
Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3971
diff
changeset
|
355 | except KeyError: |
efc9c803ebdc
Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3971
diff
changeset
|
356 | self.syntaxCheckService = None |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
357 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
358 | self.isResourcesFile = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
359 | if editor is None: |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
360 | if self.fileName: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
361 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
362 | (QFileInfo(self.fileName).size() // 1024) > |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
363 | Preferences.getEditor("WarnFilesize") |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
364 | ): |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
365 | res = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
366 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
367 | self.tr("Open File"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
368 | self.tr("""<p>The size of the file <b>{0}</b>""" |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
369 | """ is <b>{1} KB</b>.""" |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
370 | """ Do you really want to load it?</p>""") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
371 | .format(self.fileName, |
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
372 | QFileInfo(self.fileName).size() // 1024), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
373 | icon=E5MessageBox.Warning) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
374 | if not res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
375 | raise IOError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
376 | self.readFile(self.fileName, True) |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
377 | self.__bindLexer(self.fileName) |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
378 | self.__bindCompleter(self.fileName) |
3579
eccd12461319
BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3576
diff
changeset
|
379 | self.checkSyntax() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
380 | self.isResourcesFile = self.fileName.endswith(".qrc") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
381 | |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
382 | self.__convertTabs() |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
383 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
384 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
385 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
386 | # clone the given editor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
387 | self.setDocument(editor.document()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
388 | self.breaks = editor.breaks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
389 | self.bookmarks = editor.bookmarks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
390 | self.syntaxerrors = editor.syntaxerrors |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
391 | self.notcoveredMarkers = editor.notcoveredMarkers |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
392 | self.showingNotcoveredMarkers = editor.showingNotcoveredMarkers |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
393 | self.isResourcesFile = editor.isResourcesFile |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
394 | self.lastModified = editor.lastModified |
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.addClone(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
397 | editor.addClone(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
398 | |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
399 | self.gotoLine(1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
400 | |
741
137cc6344b48
Fixed an issue in the Editor class introduced by the annotation job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
730
diff
changeset
|
401 | # set the text display again |
137cc6344b48
Fixed an issue in the Editor class introduced by the annotation job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
730
diff
changeset
|
402 | self.__setTextDisplay() |
137cc6344b48
Fixed an issue in the Editor class introduced by the annotation job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
730
diff
changeset
|
403 | |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
404 | # set the auto-completion function |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
405 | self.__acContext = True |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
406 | self.__acText = "" |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
407 | self.__acCompletions = set() |
5932
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
408 | self.__acCompletionsFinished = 0 |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
409 | self.__acCache = E5Cache( |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
410 | size=Preferences.getEditor("AutoCompletionCacheSize")) |
5909
21d90a3abc7c
Added a timeout configuration value to the completions cache after which completions will be removed from the cache.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5907
diff
changeset
|
411 | self.__acCache.setMaximumCacheTime( |
21d90a3abc7c
Added a timeout configuration value to the completions cache after which completions will be removed from the cache.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5907
diff
changeset
|
412 | Preferences.getEditor("AutoCompletionCacheTime")) |
6755
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
413 | self.__acCacheEnabled = Preferences.getEditor( |
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
414 | "AutoCompletionCacheEnabled") |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
415 | self.__acTimer = QTimer(self) |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
416 | self.__acTimer.setSingleShot(True) |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
417 | self.__acTimer.setInterval( |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
418 | Preferences.getEditor("AutoCompletionTimeout")) |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
419 | self.__acTimer.timeout.connect(self.__autoComplete) |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
420 | |
5932
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
421 | self.__acWatchdog = QTimer(self) |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
422 | self.__acWatchdog.setSingleShot(True) |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
423 | self.__acWatchdog.setInterval( |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
424 | Preferences.getEditor("AutoCompletionWatchdogTime")) |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
425 | self.__acWatchdog.timeout.connect(self.autoCompleteQScintilla) |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
426 | |
6117
4cc6c171ecf6
Little performance improvement of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6116
diff
changeset
|
427 | self.userListActivated.connect(self.__completionListSelected) |
6306
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
428 | self.SCN_CHARADDED.connect(self.__charAdded) |
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
429 | self.SCN_AUTOCCANCELLED.connect(self.__autocompletionCancelled) |
6117
4cc6c171ecf6
Little performance improvement of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6116
diff
changeset
|
430 | |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
431 | self.__completionListHookFunctions = {} |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
432 | self.__completionListAsyncHookFunctions = {} |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
433 | self.__setAutoCompletion() |
5881
13381dbbb81e
Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
434 | |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
435 | # set the call-tips function |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
436 | self.__ctHookFunctions = {} |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
437 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
438 | |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
439 | # set the mouse click handlers (fired on mouse release) |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
440 | self.__mouseClickHandlers = {} |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
441 | # dictionary with tuple of keyboard modifier and mouse button as key |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
442 | # and tuple of plug-in name and function as value |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
443 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
444 | sh = self.sizeHint() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
445 | if sh.height() < 300: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
446 | sh.setHeight(300) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
447 | self.resize(sh) |
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 | # Make sure tabbing through a QWorkspace works. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
450 | self.setFocusPolicy(Qt.StrongFocus) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
451 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
452 | self.__updateReadOnly(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
453 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
454 | self.setWhatsThis(self.tr( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
455 | """<b>A Source Editor Window</b>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
456 | """<p>This window is used to display and edit a source file.""" |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
457 | """ You can open as many of these as you like. The name of the""" |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
458 | """ file is displayed in the window's titlebar.</p>""" |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
459 | """<p>In order to set breakpoints just click in the space""" |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
460 | """ between the line numbers and the fold markers. Via the""" |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
461 | """ context menu of the margins they may be edited.</p>""" |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
462 | """<p>In order to set bookmarks just Shift click in the space""" |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
463 | """ between the line numbers and the fold markers.</p>""" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
464 | """<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
|
465 | """<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
|
466 | """ about this error.</p>""" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
467 | )) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
468 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
469 | # 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
|
470 | if self.vm is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
471 | req = self.size() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
472 | bnd = req.boundedTo(self.vm.size()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
473 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
474 | 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
|
475 | self.resize(bnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
476 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
477 | # set the autosave flag |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
478 | self.autosaveEnabled = Preferences.getEditor("AutosaveInterval") > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
479 | self.autosaveManuallyDisabled = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
480 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
481 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
482 | self.__initContextMenuMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
483 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
484 | self.__checkEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
485 | if editor is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
486 | self.__checkLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
487 | self.__checkEncoding() |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
488 | self.__checkSpellLanguage() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
489 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
490 | # it's a clone |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
491 | self.__languageChanged(editor.apiLanguage, propagate=False) |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
492 | self.__encodingChanged(editor.encoding, propagate=False) |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
493 | self.__spellLanguageChanged(editor.getSpellingLanguage(), |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
494 | propagate=False) |
92
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 | self.setAcceptDrops(True) |
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 | # breakpoint handling |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
499 | self.breakpointModel = self.dbs.getBreakPointModel() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
500 | self.__restoreBreakpoints() |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
501 | self.breakpointModel.rowsAboutToBeRemoved.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
502 | self.__deleteBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
503 | self.breakpointModel.dataAboutToBeChanged.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
504 | self.__breakPointDataAboutToBeChanged) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
505 | self.breakpointModel.dataChanged.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
506 | self.__changeBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
507 | self.breakpointModel.rowsInserted.connect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
508 | self.__addBreakPoints) |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
509 | self.SCN_MODIFIED.connect(self.__modified) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
510 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
511 | # establish connection to some ViewManager action groups |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
512 | self.addActions(self.vm.editorActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
513 | self.addActions(self.vm.editActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
514 | self.addActions(self.vm.copyActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
515 | self.addActions(self.vm.viewActGrp.actions()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
516 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
517 | # register images to be shown in autocompletion lists |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
518 | self.__registerImages() |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
519 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
520 | # connect signals after loading the text |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
521 | self.textChanged.connect(self.__textChanged) |
1353
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
522 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
523 | # initialize the online change trace timer |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
524 | self.__initOnlineChangeTrace() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
525 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
526 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
527 | self.fileName and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
528 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
529 | self.project.isProjectSource(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
530 | ): |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
531 | self.project.projectPropertiesChanged.connect( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
532 | self.__projectPropertiesChanged) |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
533 | |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
534 | self.grabGesture(Qt.PinchGesture) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
535 | |
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
536 | self.SCN_ZOOM.connect(self.__markerMap.update) |
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
537 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
538 | |
7306 | 539 | def __setFileName(self, name): |
540 | """ | |
541 | Private method to set the file name of the current file. | |
542 | ||
543 | @param name name of the current file | |
544 | @type str | |
545 | """ | |
546 | self.fileName = name | |
547 | ||
548 | if self.fileName: | |
549 | self.__fileNameExtension = ( | |
550 | os.path.splitext(self.fileName)[1][1:].lower() | |
551 | ) | |
552 | else: | |
553 | self.__fileNameExtension = "" | |
554 | ||
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
555 | def __registerImages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
556 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
557 | Private method to register images for autocompletion lists. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
558 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
559 | self.registerImage(self.ClassID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
560 | UI.PixmapCache.getPixmap("class")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
561 | self.registerImage(self.ClassProtectedID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
562 | UI.PixmapCache.getPixmap("class_protected")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
563 | self.registerImage(self.ClassPrivateID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
564 | UI.PixmapCache.getPixmap("class_private")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
565 | self.registerImage(self.MethodID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
566 | UI.PixmapCache.getPixmap("method")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
567 | self.registerImage(self.MethodProtectedID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
568 | UI.PixmapCache.getPixmap("method_protected")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
569 | self.registerImage(self.MethodPrivateID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
570 | UI.PixmapCache.getPixmap("method_private")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
571 | self.registerImage(self.AttributeID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
572 | UI.PixmapCache.getPixmap("attribute")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
573 | self.registerImage(self.AttributeProtectedID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
574 | UI.PixmapCache.getPixmap("attribute_protected")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
575 | self.registerImage(self.AttributePrivateID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
576 | UI.PixmapCache.getPixmap("attribute_private")) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
577 | self.registerImage(self.EnumID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
578 | UI.PixmapCache.getPixmap("enum")) |
5894
0d4431926611
Two additional autocomplete icons.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5891
diff
changeset
|
579 | self.registerImage(self.KeywordsID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
580 | UI.PixmapCache.getPixmap("keywords")) |
5894
0d4431926611
Two additional autocomplete icons.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5891
diff
changeset
|
581 | self.registerImage(self.ModuleID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
582 | UI.PixmapCache.getPixmap("module")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
583 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
584 | self.registerImage(self.FromDocumentID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
585 | UI.PixmapCache.getPixmap("editor")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
586 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
587 | self.registerImage(self.TemplateImageID, |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
588 | UI.PixmapCache.getPixmap("templateViewer")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
589 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
590 | def addClone(self, editor): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
591 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
592 | 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
|
593 | |
6052
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
594 | @param editor reference to the cloned editor |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
595 | @type Editor |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
596 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
597 | self.__clones.append(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
598 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
599 | editor.editorRenamed.connect(self.fileRenamed) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
600 | editor.languageChanged.connect(self.languageChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
601 | editor.eolChanged.connect(self.__eolChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
602 | editor.encodingChanged.connect(self.__encodingChanged) |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
603 | editor.spellLanguageChanged.connect(self.__spellLanguageChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
604 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
605 | def removeClone(self, editor): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
606 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
607 | 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
|
608 | |
6052
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
609 | @param editor reference to the cloned editor |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
610 | @type Editor |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
611 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
612 | if editor in self.__clones: |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
613 | editor.editorRenamed.disconnect(self.fileRenamed) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
614 | editor.languageChanged.disconnect(self.languageChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
615 | editor.eolChanged.disconnect(self.__eolChanged) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
616 | editor.encodingChanged.disconnect(self.__encodingChanged) |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
617 | editor.spellLanguageChanged.disconnect(self.__spellLanguageChanged) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
618 | self.__clones.remove(editor) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
619 | |
6052
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
620 | def isClone(self, editor): |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
621 | """ |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
622 | Public method to test, if the given editor is a clone. |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
623 | |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
624 | @param editor reference to the cloned editor |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
625 | @type Editor |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
626 | @return flag indicating a clone |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
627 | @rtype bool |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
628 | """ |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
629 | return editor in self.__clones |
8b49d3e0b4c8
Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
630 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
631 | def __bindName(self, line0): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
632 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
633 | 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
|
634 | |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
635 | @param line0 first line of text to use in the generation process |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
636 | (string) |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
637 | @return dummy file name to be used for binding a lexer (string) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
638 | """ |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
639 | bindName = "" |
2221
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
640 | line0 = line0.lower() |
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
641 | |
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
642 | # check first line if it does not start with #! |
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
643 | if line0.startswith(("<html", "<!doctype html", "<?php")): |
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
644 | bindName = "dummy.html" |
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
645 | elif line0.startswith(("<?xml", "<!doctype")): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
646 | bindName = "dummy.xml" |
2221
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
647 | elif line0.startswith("index: "): |
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
648 | bindName = "dummy.diff" |
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
649 | elif line0.startswith("\\documentclass"): |
f72f8b0478cb
Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2219
diff
changeset
|
650 | bindName = "dummy.tex" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
651 | |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
652 | if not bindName and self.filetype: |
6718
24a7a749e132
Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
653 | # check filetype |
24a7a749e132
Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
654 | from . import Lexers |
24a7a749e132
Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
655 | supportedLanguages = Lexers.getSupportedLanguages() |
24a7a749e132
Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
656 | if self.filetype in supportedLanguages: |
24a7a749e132
Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
657 | bindName = supportedLanguages[self.filetype][1] |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
658 | elif self.filetype in ["Python", "Python3", "MicroPython"]: |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
659 | bindName = "dummy.py" |
6718
24a7a749e132
Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
660 | |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
661 | if not bindName and line0.startswith("#!"): |
6718
24a7a749e132
Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
662 | # #! marker detection |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
663 | if "python3" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
664 | bindName = "dummy.py" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
665 | self.filetype = "Python3" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
666 | elif "python" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
667 | bindName = "dummy.py" |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
668 | self.filetype = "Python3" |
6073
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
669 | elif "pypy3" in line0: |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
670 | bindName = "dummy.py" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
671 | self.filetype = "Python3" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
672 | elif "pypy" in line0: |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
673 | bindName = "dummy.py" |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
674 | self.filetype = "Python3" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
675 | elif ("/bash" in line0 or "/sh" in line0): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
676 | bindName = "dummy.sh" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
677 | elif "ruby" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
678 | bindName = "dummy.rb" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
679 | self.filetype = "Ruby" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
680 | elif "perl" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
681 | bindName = "dummy.pl" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
682 | elif "lua" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
683 | bindName = "dummy.lua" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
684 | elif "dmd" in line0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
685 | bindName = "dummy.d" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
686 | self.filetype = "D" |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
687 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
688 | if not bindName: |
6073
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
689 | # mode line detection: -*- mode: python -*- |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
690 | match = re.search(r"mode[:=]\s*([-\w_.]+)", line0) |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
691 | if match: |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
692 | mode = match.group(1).lower() |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
693 | if mode in ["python3", "pypy3"]: |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
694 | bindName = "dummy.py" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
695 | self.filetype = "Python3" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
696 | elif mode == "ruby": |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
697 | bindName = "dummy.rb" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
698 | self.filetype = "Ruby" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
699 | elif mode == "perl": |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
700 | bindName = "dummy.pl" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
701 | elif mode == "lua": |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
702 | bindName = "dummy.lua" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
703 | elif mode in ["dmd", "d"]: |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
704 | bindName = "dummy.d" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
705 | self.filetype = "D" |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
706 | |
a679240821cb
Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6059
diff
changeset
|
707 | if not bindName: |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
708 | bindName = self.fileName |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
709 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
710 | return bindName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
711 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
712 | def getMenu(self, menuName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
713 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
714 | 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
|
715 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
716 | @param menuName name of the menu (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
717 | @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
|
718 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
719 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
720 | return self.__menus[menuName] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
721 | except KeyError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
722 | return None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
723 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
724 | def hasMiniMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
725 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
726 | Public method to check the miniMenu flag. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
727 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
728 | @return flag indicating a minimized context menu (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
729 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
730 | return self.miniMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
731 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
732 | def __initContextMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
733 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
734 | Private method used to setup the context menu. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
735 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
736 | self.miniMenu = Preferences.getEditor("MiniContextMenu") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
737 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
738 | self.menuActs = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
739 | self.menu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
740 | self.__menus = { |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
741 | "Main": self.menu, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
742 | } |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
743 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
744 | self.languagesMenu = self.__initContextMenuLanguages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
745 | self.__menus["Languages"] = self.languagesMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
746 | if self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
747 | self.resourcesMenu = self.__initContextMenuResources() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
748 | self.__menus["Resources"] = self.resourcesMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
749 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
750 | self.checksMenu = self.__initContextMenuChecks() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
751 | self.menuShow = self.__initContextMenuShow() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
752 | self.graphicsMenu = self.__initContextMenuGraphics() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
753 | self.autocompletionMenu = self.__initContextMenuAutocompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
754 | self.__menus["Checks"] = self.checksMenu |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
755 | self.__menus["Show"] = self.menuShow |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
756 | self.__menus["Graphics"] = self.graphicsMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
757 | self.__menus["Autocompletion"] = self.autocompletionMenu |
3583
3e8e0346d639
Re-fixed the recent editor issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3581
diff
changeset
|
758 | self.toolsMenu = self.__initContextMenuTools() |
3e8e0346d639
Re-fixed the recent editor issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3581
diff
changeset
|
759 | self.__menus["Tools"] = self.toolsMenu |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
760 | self.exportersMenu = self.__initContextMenuExporters() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
761 | self.__menus["Exporters"] = self.exportersMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
762 | self.eolMenu = self.__initContextMenuEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
763 | self.__menus["Eol"] = self.eolMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
764 | self.encodingsMenu = self.__initContextMenuEncodings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
765 | self.__menus["Encodings"] = self.encodingsMenu |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
766 | self.spellLanguagesMenu = self.__initContextMenuSpellLanguages() |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
767 | self.__menus["SpellLanguages"] = self.spellLanguagesMenu |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
768 | |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
769 | self.menuActs["Undo"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
770 | UI.PixmapCache.getIcon("editUndo"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
771 | self.tr('Undo'), self.undo) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
772 | self.menuActs["Redo"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
773 | UI.PixmapCache.getIcon("editRedo"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
774 | self.tr('Redo'), self.redo) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
775 | self.menuActs["Revert"] = self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
776 | self.tr("Revert to last saved state"), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
777 | self.revertToUnmodified) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
778 | self.menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
779 | self.menuActs["Cut"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
780 | UI.PixmapCache.getIcon("editCut"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
781 | self.tr('Cut'), self.cut) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
782 | self.menuActs["Copy"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
783 | UI.PixmapCache.getIcon("editCopy"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
784 | self.tr('Copy'), self.copy) |
6059
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
785 | self.menuActs["Paste"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
786 | UI.PixmapCache.getIcon("editPaste"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
787 | self.tr('Paste'), self.paste) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
788 | if not self.miniMenu: |
6059
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
789 | self.menuActs["ExecuteSelection"] = self.menu.addAction( |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
790 | self.tr("Execute Selection In Console"), |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
791 | self.__executeSelection) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
792 | self.menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
793 | self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
794 | UI.PixmapCache.getIcon("editIndent"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
795 | self.tr('Indent'), self.indentLineOrSelection) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
796 | self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
797 | UI.PixmapCache.getIcon("editUnindent"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
798 | self.tr('Unindent'), self.unindentLineOrSelection) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
799 | self.menuActs["Comment"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
800 | UI.PixmapCache.getIcon("editComment"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
801 | self.tr('Comment'), self.commentLineOrSelection) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
802 | self.menuActs["Uncomment"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
803 | UI.PixmapCache.getIcon("editUncomment"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
804 | self.tr('Uncomment'), self.uncommentLineOrSelection) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
805 | self.menuActs["StreamComment"] = self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
806 | self.tr('Stream Comment'), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
807 | self.streamCommentLineOrSelection) |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
808 | self.menuActs["BoxComment"] = self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
809 | self.tr('Box Comment'), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
810 | self.boxCommentLineOrSelection) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
811 | self.menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
812 | self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
813 | self.tr('Select to brace'), self.selectToMatchingBrace) |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
814 | self.menu.addAction(self.tr('Select all'), self.__selectAll) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
815 | self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
816 | self.tr('Deselect all'), self.__deselectAll) |
6059
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
817 | else: |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
818 | self.menuActs["ExecuteSelection"] = None |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
819 | self.menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
820 | self.menuActs["SpellCheck"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
821 | UI.PixmapCache.getIcon("spellchecking"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
822 | self.tr('Check spelling...'), self.checkSpelling) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
823 | self.menuActs["SpellCheckSelection"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
824 | UI.PixmapCache.getIcon("spellchecking"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
825 | self.tr('Check spelling of selection...'), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
826 | self.__checkSpellingSelection) |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
827 | self.menuActs["SpellCheckRemove"] = self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
828 | self.tr("Remove from dictionary"), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
829 | self.__removeFromSpellingDictionary) |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
830 | self.menuActs["SpellCheckLanguages"] = self.menu.addMenu( |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
831 | self.spellLanguagesMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
832 | self.menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
833 | self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
834 | self.tr('Shorten empty lines'), self.shortenEmptyLines) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
835 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
836 | self.menuActs["Languages"] = self.menu.addMenu(self.languagesMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
837 | self.menuActs["Encodings"] = self.menu.addMenu(self.encodingsMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
838 | self.menuActs["Eol"] = self.menu.addMenu(self.eolMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
839 | self.menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
840 | self.menuActs["MonospacedFont"] = self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
841 | self.tr("Use Monospaced Font"), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
842 | self.handleMonospacedEnable) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
843 | self.menuActs["MonospacedFont"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
844 | self.menuActs["MonospacedFont"].setChecked(self.useMonospaced) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
845 | self.menuActs["AutosaveEnable"] = self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
846 | self.tr("Autosave enabled"), self.__autosaveEnable) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
847 | self.menuActs["AutosaveEnable"].setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
848 | self.menuActs["AutosaveEnable"].setChecked(self.autosaveEnabled) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
849 | self.menuActs["TypingAidsEnabled"] = self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
850 | self.tr("Typing aids enabled"), self.__toggleTypingAids) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
851 | self.menuActs["TypingAidsEnabled"].setCheckable(True) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
852 | self.menuActs["TypingAidsEnabled"].setEnabled( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
853 | self.completer is not None) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
854 | self.menuActs["TypingAidsEnabled"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
855 | self.completer is not None and self.completer.isEnabled()) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
856 | self.menuActs["AutoCompletionEnable"] = self.menu.addAction( |
4153
95b18307079f
Corrected some auto-completion related terms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4142
diff
changeset
|
857 | self.tr("Automatic Completion enabled"), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
858 | self.__toggleAutoCompletionEnable) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
859 | self.menuActs["AutoCompletionEnable"].setCheckable(True) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
860 | self.menuActs["AutoCompletionEnable"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
861 | self.autoCompletionThreshold() != -1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
862 | if not self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
863 | self.menu.addMenu(self.autocompletionMenu) |
4153
95b18307079f
Corrected some auto-completion related terms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4142
diff
changeset
|
864 | self.menuActs["calltip"] = self.menu.addAction( |
95b18307079f
Corrected some auto-completion related terms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4142
diff
changeset
|
865 | self.tr('Calltip'), self.callTip) |
5907
c928af9fce32
Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
866 | self.menuActs["codeInfo"] = self.menu.addAction( |
c928af9fce32
Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
867 | self.tr('Code Info'), self.__showCodeInfo) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
868 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
869 | if self.isResourcesFile: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
870 | self.menu.addMenu(self.resourcesMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
871 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
872 | self.menuActs["Check"] = self.menu.addMenu(self.checksMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
873 | self.menu.addSeparator() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
874 | self.menuActs["Show"] = self.menu.addMenu(self.menuShow) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
875 | self.menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
876 | self.menuActs["Diagrams"] = self.menu.addMenu(self.graphicsMenu) |
3583
3e8e0346d639
Re-fixed the recent editor issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3581
diff
changeset
|
877 | self.menu.addSeparator() |
3e8e0346d639
Re-fixed the recent editor issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3581
diff
changeset
|
878 | self.menuActs["Tools"] = self.menu.addMenu(self.toolsMenu) |
3155
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
879 | self.menu.addSeparator() |
3100
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
880 | self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
881 | UI.PixmapCache.getIcon("documentNewView"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
882 | self.tr('New Document View'), self.__newView) |
3100
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
883 | self.menuActs["NewSplit"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
884 | UI.PixmapCache.getIcon("splitVertical"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
885 | self.tr('New Document View (with new split)'), |
3100
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
886 | self.__newViewNewSplit) |
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
887 | self.menuActs["NewSplit"].setEnabled(self.vm.canSplit()) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
888 | self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
889 | UI.PixmapCache.getIcon("close"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
890 | self.tr('Close'), self.__contextClose) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
891 | self.menu.addSeparator() |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
892 | self.reopenEncodingMenu = self.__initContextMenuReopenWithEncoding() |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
893 | self.menuActs["Reopen"] = self.menu.addMenu(self.reopenEncodingMenu) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
894 | self.menuActs["Save"] = self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
895 | UI.PixmapCache.getIcon("fileSave"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
896 | self.tr('Save'), self.__contextSave) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
897 | self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
898 | UI.PixmapCache.getIcon("fileSaveAs"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
899 | self.tr('Save As...'), self.__contextSaveAs) |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
900 | self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
901 | UI.PixmapCache.getIcon("fileSaveCopy"), |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
902 | self.tr('Save Copy...'), self.__contextSaveCopy) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
903 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
904 | self.menu.addMenu(self.exportersMenu) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
905 | self.menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
906 | self.menuActs["OpenRejections"] = self.menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
907 | self.tr("Open 'rejection' file"), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
908 | self.__contextOpenRejections) |
1299
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
909 | self.menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
910 | self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
911 | UI.PixmapCache.getIcon("printPreview"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
912 | self.tr("Print Preview"), self.printPreviewFile) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
913 | self.menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
914 | UI.PixmapCache.getIcon("print"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
915 | self.tr('Print'), self.printFile) |
1299
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
916 | else: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
917 | self.menuActs["OpenRejections"] = None |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
918 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
919 | self.menu.aboutToShow.connect(self.__showContextMenu) |
92
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 | self.spellingMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
922 | self.__menus["Spelling"] = self.spellingMenu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
923 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
924 | self.spellingMenu.aboutToShow.connect(self.__showContextMenuSpelling) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
925 | self.spellingMenu.triggered.connect( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
926 | self.__contextMenuSpellingTriggered) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
927 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
928 | def __initContextMenuAutocompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
929 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
930 | Private method used to setup the Checks context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
931 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
932 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
933 | """ |
4153
95b18307079f
Corrected some auto-completion related terms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4142
diff
changeset
|
934 | menu = QMenu(self.tr('Complete')) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
935 | |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
936 | self.menuActs["acDynamic"] = menu.addAction( |
4814
0e3903a7480d
Synchronized the Complete menus of the global Edit menu and the editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4718
diff
changeset
|
937 | self.tr('Complete'), self.autoComplete) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
938 | menu.addSeparator() |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
939 | self.menuActs["acClearCache"] = menu.addAction( |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
940 | self.tr("Clear Completions Cache"), self.__clearCompletionsCache) |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
941 | menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
942 | menu.addAction( |
4814
0e3903a7480d
Synchronized the Complete menus of the global Edit menu and the editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4718
diff
changeset
|
943 | self.tr('Complete from Document'), self.autoCompleteFromDocument) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
944 | self.menuActs["acAPI"] = menu.addAction( |
4814
0e3903a7480d
Synchronized the Complete menus of the global Edit menu and the editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4718
diff
changeset
|
945 | self.tr('Complete from APIs'), self.autoCompleteFromAPIs) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
946 | self.menuActs["acAPIDocument"] = menu.addAction( |
4814
0e3903a7480d
Synchronized the Complete menus of the global Edit menu and the editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4718
diff
changeset
|
947 | self.tr('Complete from Document and APIs'), |
0e3903a7480d
Synchronized the Complete menus of the global Edit menu and the editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4718
diff
changeset
|
948 | self.autoCompleteFromAll) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
949 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
950 | menu.aboutToShow.connect(self.__showContextMenuAutocompletion) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
951 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
952 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
953 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
954 | def __initContextMenuChecks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
955 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
956 | Private method used to setup the Checks context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
957 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
958 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
959 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
960 | menu = QMenu(self.tr('Check')) |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
961 | menu.aboutToShow.connect(self.__showContextMenuChecks) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
962 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
963 | |
3155
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
964 | def __initContextMenuTools(self): |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
965 | """ |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
966 | Private method used to setup the Tools context sub menu. |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
967 | |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
968 | @return reference to the generated menu (QMenu) |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
969 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
970 | menu = QMenu(self.tr('Tools')) |
3155
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
971 | menu.aboutToShow.connect(self.__showContextMenuTools) |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
972 | return menu |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
973 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
974 | def __initContextMenuShow(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
975 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
976 | Private method used to setup the Show context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
977 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
978 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
979 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
980 | menu = QMenu(self.tr('Show')) |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
981 | |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
982 | menu.addAction(self.tr('Code metrics...'), self.__showCodeMetrics) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
983 | self.coverageMenuAct = menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
984 | self.tr('Code coverage...'), self.__showCodeCoverage) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
985 | self.coverageShowAnnotationMenuAct = menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
986 | self.tr('Show code coverage annotations'), |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
987 | self.codeCoverageShowAnnotations) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
988 | self.coverageHideAnnotationMenuAct = menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
989 | self.tr('Hide code coverage annotations'), |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
990 | self.__codeCoverageHideAnnotations) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
991 | self.profileMenuAct = menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
992 | self.tr('Profile data...'), self.__showProfileData) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
993 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
994 | menu.aboutToShow.connect(self.__showContextMenuShow) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
995 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
996 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
997 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
998 | def __initContextMenuGraphics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
999 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1000 | Private method used to setup the diagrams context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1001 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1002 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1003 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1004 | menu = QMenu(self.tr('Diagrams')) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1005 | |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1006 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1007 | self.tr('Class Diagram...'), self.__showClassDiagram) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1008 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1009 | self.tr('Package Diagram...'), self.__showPackageDiagram) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1010 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1011 | self.tr('Imports Diagram...'), self.__showImportsDiagram) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1012 | self.applicationDiagramMenuAct = menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1013 | self.tr('Application Diagram...'), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1014 | self.__showApplicationDiagram) |
2034
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
1015 | menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1016 | menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
1017 | UI.PixmapCache.getIcon("open"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1018 | self.tr("Load Diagram..."), self.__loadDiagram) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1019 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
1020 | menu.aboutToShow.connect(self.__showContextMenuGraphics) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1021 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1022 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1023 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1024 | def __initContextMenuLanguages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1025 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1026 | Private method used to setup the Languages context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1027 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1028 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1029 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1030 | menu = QMenu(self.tr("Languages")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1031 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1032 | self.languagesActGrp = QActionGroup(self) |
6210
f5b392aac28e
Added a default 'Text Document' icon for the status bar file type field and the language selection menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6188
diff
changeset
|
1033 | self.noLanguageAct = menu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
1034 | UI.PixmapCache.getIcon("fileText"), |
6210
f5b392aac28e
Added a default 'Text Document' icon for the status bar file type field and the language selection menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6188
diff
changeset
|
1035 | self.tr("No Language")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1036 | self.noLanguageAct.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1037 | self.noLanguageAct.setData("None") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1038 | self.languagesActGrp.addAction(self.noLanguageAct) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1039 | menu.addSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1040 | |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
1041 | from . import Lexers |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1042 | self.supportedLanguages = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1043 | supportedLanguages = Lexers.getSupportedLanguages() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1044 | languages = sorted(list(supportedLanguages.keys())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1045 | for language in languages: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1046 | if language != "Guessed": |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1047 | self.supportedLanguages[language] = ( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1048 | supportedLanguages[language][:2] |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1049 | ) |
2217
e80c74f2a25a
Added some icons to the "Languages" and "End-of-Line Type" context menus of the editor and changed the status labels for programming language and end-of-line type of the main window to show an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2216
diff
changeset
|
1050 | act = menu.addAction( |
e80c74f2a25a
Added some icons to the "Languages" and "End-of-Line Type" context menus of the editor and changed the status labels for programming language and end-of-line type of the main window to show an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2216
diff
changeset
|
1051 | UI.PixmapCache.getIcon(supportedLanguages[language][2]), |
e80c74f2a25a
Added some icons to the "Languages" and "End-of-Line Type" context menus of the editor and changed the status labels for programming language and end-of-line type of the main window to show an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2216
diff
changeset
|
1052 | self.supportedLanguages[language][0]) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1053 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1054 | act.setData(language) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1055 | self.supportedLanguages[language].append(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1056 | self.languagesActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1057 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1058 | menu.addSeparator() |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1059 | self.pygmentsAct = menu.addAction(self.tr("Guessed")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1060 | self.pygmentsAct.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1061 | self.pygmentsAct.setData("Guessed") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1062 | self.languagesActGrp.addAction(self.pygmentsAct) |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1063 | self.pygmentsSelAct = menu.addAction(self.tr("Alternatives")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1064 | self.pygmentsSelAct.setData("Alternatives") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1065 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1066 | menu.triggered.connect(self.__languageMenuTriggered) |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
1067 | menu.aboutToShow.connect(self.__showContextMenuLanguages) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1068 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1069 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1070 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1071 | def __initContextMenuEncodings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1072 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1073 | Private method used to setup the Encodings context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1074 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1075 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1076 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1077 | self.supportedEncodings = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1078 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1079 | menu = QMenu(self.tr("Encodings")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1080 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1081 | self.encodingsActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1082 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1083 | for encoding in sorted(Utilities.supportedCodecs): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1084 | act = menu.addAction(encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1085 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1086 | act.setData(encoding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1087 | self.supportedEncodings[encoding] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1088 | self.encodingsActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1089 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1090 | menu.triggered.connect(self.__encodingsMenuTriggered) |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
1091 | menu.aboutToShow.connect(self.__showContextMenuEncodings) |
92
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 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1094 | |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1095 | def __initContextMenuReopenWithEncoding(self): |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1096 | """ |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1097 | Private method used to setup the Reopen With Encoding context sub menu. |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1098 | |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1099 | @return reference to the generated menu (QMenu) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1100 | """ |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1101 | menu = QMenu(self.tr("Re-Open With Encoding")) |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
1102 | menu.setIcon(UI.PixmapCache.getIcon("open")) |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1103 | |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1104 | for encoding in sorted(Utilities.supportedCodecs): |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1105 | act = menu.addAction(encoding) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1106 | act.setData(encoding) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1107 | |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1108 | menu.triggered.connect(self.__reopenWithEncodingMenuTriggered) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1109 | |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1110 | return menu |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
1111 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1112 | def __initContextMenuEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1113 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1114 | Private method to setup the eol context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1115 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1116 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1117 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1118 | self.supportedEols = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1119 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1120 | menu = QMenu(self.tr("End-of-Line Type")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1121 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1122 | self.eolActGrp = QActionGroup(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1123 | |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
1124 | act = menu.addAction(UI.PixmapCache.getIcon("eolLinux"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1125 | self.tr("Unix")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1126 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1127 | act.setData('\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1128 | self.supportedEols['\n'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1129 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1130 | |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
1131 | act = menu.addAction(UI.PixmapCache.getIcon("eolWindows"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1132 | self.tr("Windows")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1133 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1134 | act.setData('\r\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1135 | self.supportedEols['\r\n'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1136 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1137 | |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
1138 | act = menu.addAction(UI.PixmapCache.getIcon("eolMac"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1139 | self.tr("Macintosh")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1140 | act.setCheckable(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1141 | act.setData('\r') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1142 | self.supportedEols['\r'] = act |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1143 | self.eolActGrp.addAction(act) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1144 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1145 | menu.triggered.connect(self.__eolMenuTriggered) |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
1146 | menu.aboutToShow.connect(self.__showContextMenuEol) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1147 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1148 | return menu |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1149 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1150 | def __initContextMenuSpellLanguages(self): |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1151 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1152 | Private method to setup the spell checking languages context sub menu. |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1153 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1154 | @return reference to the generated menu |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1155 | @rtype QMenu |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1156 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1157 | self.supportedSpellLanguages = {} |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1158 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1159 | menu = QMenu(self.tr("Spell Check Languages")) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1160 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1161 | self.spellLanguagesActGrp = QActionGroup(self) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1162 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1163 | self.noSpellLanguageAct = menu.addAction( |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1164 | self.tr("No Language")) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1165 | self.noSpellLanguageAct.setCheckable(True) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1166 | self.noSpellLanguageAct.setData("") |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1167 | self.spellLanguagesActGrp.addAction(self.noSpellLanguageAct) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1168 | menu.addSeparator() |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1169 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1170 | for language in sorted(SpellChecker.getAvailableLanguages()): |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1171 | act = menu.addAction(language) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1172 | act.setCheckable(True) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1173 | act.setData(language) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1174 | self.supportedSpellLanguages[language] = act |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1175 | self.spellLanguagesActGrp.addAction(act) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1176 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1177 | menu.triggered.connect(self.__spellLanguagesMenuTriggered) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1178 | menu.aboutToShow.connect(self.__showContextMenuSpellLanguages) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1179 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1180 | return menu |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1181 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1182 | def __initContextMenuExporters(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1183 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1184 | Private method used to setup the Exporters context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1185 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1186 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1187 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1188 | menu = QMenu(self.tr("Export as")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1189 | |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
1190 | from . import Exporters |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1191 | supportedExporters = Exporters.getSupportedFormats() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1192 | exporters = sorted(list(supportedExporters.keys())) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1193 | for exporter in exporters: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1194 | act = menu.addAction(supportedExporters[exporter]) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1195 | act.setData(exporter) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1196 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1197 | menu.triggered.connect(self.__exportMenuTriggered) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1198 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1199 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1200 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1201 | def __initContextMenuMargins(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1202 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1203 | Private method used to setup the context menu for the margins. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1204 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1205 | self.marginMenuActs = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1206 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1207 | # bookmark margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1208 | self.bmMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1209 | |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1210 | self.bmMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1211 | self.tr('Toggle bookmark'), self.menuToggleBookmark) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1212 | self.marginMenuActs["NextBookmark"] = self.bmMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1213 | self.tr('Next bookmark'), self.nextBookmark) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1214 | self.marginMenuActs["PreviousBookmark"] = self.bmMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1215 | self.tr('Previous bookmark'), self.previousBookmark) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1216 | self.marginMenuActs["ClearBookmark"] = self.bmMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1217 | self.tr('Clear all bookmarks'), self.clearBookmarks) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1218 | |
6116
f3d3c996c193
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6111
diff
changeset
|
1219 | self.bmMarginMenu.aboutToShow.connect( |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
1220 | lambda: self.__showContextMenuMargin(self.bmMarginMenu)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1221 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1222 | # breakpoint margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1223 | self.bpMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1224 | |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1225 | self.marginMenuActs["Breakpoint"] = self.bpMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1226 | self.tr('Toggle breakpoint'), self.menuToggleBreakpoint) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1227 | self.marginMenuActs["TempBreakpoint"] = self.bpMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1228 | self.tr('Toggle temporary breakpoint'), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1229 | self.__menuToggleTemporaryBreakpoint) |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1230 | self.marginMenuActs["EditBreakpoint"] = self.bpMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1231 | self.tr('Edit breakpoint...'), self.menuEditBreakpoint) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1232 | self.marginMenuActs["EnableBreakpoint"] = self.bpMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1233 | self.tr('Enable breakpoint'), |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1234 | self.__menuToggleBreakpointEnabled) |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1235 | self.marginMenuActs["NextBreakpoint"] = self.bpMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1236 | self.tr('Next breakpoint'), self.menuNextBreakpoint) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1237 | self.marginMenuActs["PreviousBreakpoint"] = ( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1238 | self.bpMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1239 | self.tr('Previous breakpoint'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1240 | self.menuPreviousBreakpoint) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1241 | ) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1242 | self.marginMenuActs["ClearBreakpoint"] = self.bpMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1243 | self.tr('Clear all breakpoints'), self.__menuClearBreakpoints) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1244 | |
6116
f3d3c996c193
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6111
diff
changeset
|
1245 | self.bpMarginMenu.aboutToShow.connect( |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
1246 | lambda: self.__showContextMenuMargin(self.bpMarginMenu)) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1247 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1248 | # fold margin |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1249 | self.foldMarginMenu = QMenu() |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1250 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1251 | self.marginMenuActs["ToggleAllFolds"] = ( |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1252 | self.foldMarginMenu.addAction( |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1253 | self.tr("Toggle all folds"), |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1254 | self.foldAll) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1255 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1256 | self.marginMenuActs["ToggleAllFoldsAndChildren"] = ( |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1257 | self.foldMarginMenu.addAction( |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1258 | self.tr("Toggle all folds (including children)"), |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1259 | lambda: self.foldAll(True)) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1260 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1261 | self.marginMenuActs["ToggleCurrentFold"] = ( |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1262 | self.foldMarginMenu.addAction( |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1263 | self.tr("Toggle current fold"), |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1264 | self.toggleCurrentFold) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1265 | ) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1266 | self.foldMarginMenu.addSeparator() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1267 | self.marginMenuActs["ExpandChildren"] = ( |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1268 | self.foldMarginMenu.addAction( |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1269 | self.tr("Expand (including children)"), |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1270 | self.__contextMenuExpandFoldWithChildren) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1271 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1272 | self.marginMenuActs["CollapseChildren"] = ( |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1273 | self.foldMarginMenu.addAction( |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1274 | self.tr("Collapse (including children)"), |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1275 | self.__contextMenuCollapseFoldWithChildren) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1276 | ) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1277 | self.foldMarginMenu.addSeparator() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1278 | self.marginMenuActs["ClearAllFolds"] = ( |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1279 | self.foldMarginMenu.addAction( |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1280 | self.tr("Clear all folds"), |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1281 | self.clearFolds) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1282 | ) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1283 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
1284 | self.foldMarginMenu.aboutToShow.connect( |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
1285 | lambda: self.__showContextMenuMargin(self.foldMarginMenu)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1286 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1287 | # indicator margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1288 | self.indicMarginMenu = QMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1289 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1290 | self.marginMenuActs["GotoSyntaxError"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1291 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1292 | self.tr('Goto syntax error'), self.gotoSyntaxError) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1293 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1294 | self.marginMenuActs["ShowSyntaxError"] = ( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1295 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1296 | self.tr('Show syntax error message'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1297 | self.__showSyntaxError) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1298 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1299 | self.marginMenuActs["ClearSyntaxError"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1300 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1301 | self.tr('Clear syntax error'), self.clearSyntaxError) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1302 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1303 | self.indicMarginMenu.addSeparator() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1304 | self.marginMenuActs["NextWarningMarker"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1305 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1306 | self.tr("Next warning"), self.nextWarning) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1307 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1308 | self.marginMenuActs["PreviousWarningMarker"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1309 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1310 | self.tr("Previous warning"), self.previousWarning) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1311 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1312 | self.marginMenuActs["ShowWarning"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1313 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1314 | self.tr('Show warning message'), self.__showWarning) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1315 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1316 | self.marginMenuActs["ClearWarnings"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1317 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1318 | self.tr('Clear warnings'), self.clearWarnings) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1319 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1320 | self.indicMarginMenu.addSeparator() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1321 | self.marginMenuActs["NextCoverageMarker"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1322 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1323 | self.tr('Next uncovered line'), self.nextUncovered) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1324 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1325 | self.marginMenuActs["PreviousCoverageMarker"] = ( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1326 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1327 | self.tr('Previous uncovered line'), self.previousUncovered) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1328 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1329 | self.indicMarginMenu.addSeparator() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1330 | self.marginMenuActs["NextTaskMarker"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1331 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1332 | self.tr('Next task'), self.nextTask) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1333 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1334 | self.marginMenuActs["PreviousTaskMarker"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1335 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1336 | self.tr('Previous task'), self.previousTask) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1337 | ) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
1338 | self.indicMarginMenu.addSeparator() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1339 | self.marginMenuActs["NextChangeMarker"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1340 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1341 | self.tr('Next change'), self.nextChange) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1342 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1343 | self.marginMenuActs["PreviousChangeMarker"] = ( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
1344 | self.indicMarginMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1345 | self.tr('Previous change'), self.previousChange) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1346 | ) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1347 | self.marginMenuActs["ClearChangeMarkers"] = ( |
6035
6cac9ce8ab15
Added an entry to delete all change markers to the marker margin context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6033
diff
changeset
|
1348 | self.indicMarginMenu.addAction( |
6092
f0d60c3de700
Fix for manually clearing the change markers of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6081
diff
changeset
|
1349 | self.tr('Clear changes'), self.__reinitOnlineChangeTrace) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1350 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1351 | |
6116
f3d3c996c193
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6111
diff
changeset
|
1352 | self.indicMarginMenu.aboutToShow.connect( |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
1353 | lambda: self.__showContextMenuMargin(self.indicMarginMenu)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1354 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1355 | def __exportMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1356 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1357 | 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
|
1358 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1359 | @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
|
1360 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1361 | exporterFormat = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1362 | self.exportFile(exporterFormat) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1363 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1364 | def exportFile(self, exporterFormat): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1365 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1366 | Public method to export the file. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1367 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1368 | @param 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
|
1369 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1370 | if exporterFormat: |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
1371 | from . import Exporters |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1372 | exporter = Exporters.getExporter(exporterFormat, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1373 | if exporter: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1374 | exporter.exportSource() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1375 | else: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
1376 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
1377 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1378 | self.tr("Export source"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1379 | self.tr( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1380 | """<p>No exporter available for the """ |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
1381 | """export format <b>{0}</b>. Aborting...</p>""") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
1382 | .format(exporterFormat)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1383 | else: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
1384 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
1385 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1386 | self.tr("Export source"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1387 | self.tr("""No export format given. Aborting...""")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1388 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1389 | def __showContextMenuLanguages(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1390 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1391 | Private slot handling the aboutToShow signal of the languages context |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1392 | menu. |
92
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 | if self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1395 | self.pygmentsSelAct.setText( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1396 | self.tr("Alternatives ({0})").format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1397 | self.getLanguage(normalized=False))) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1398 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1399 | self.pygmentsSelAct.setText(self.tr("Alternatives")) |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
1400 | self.showMenu.emit("Languages", self.languagesMenu, self) |
92
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 | def __selectPygmentsLexer(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1403 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1404 | Private method to select a specific pygments lexer. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1405 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1406 | @return name of the selected pygments lexer (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1407 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1408 | from pygments.lexers import get_all_lexers |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7575
diff
changeset
|
1409 | lexerList = sorted(lex[0] for lex in get_all_lexers()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1410 | try: |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1411 | lexerSel = lexerList.index( |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1412 | self.getLanguage(normalized=False, forPygments=True)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1413 | except ValueError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1414 | lexerSel = 0 |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
1415 | lexerName, ok = QInputDialog.getItem( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1416 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1417 | self.tr("Pygments Lexer"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1418 | self.tr("Select the Pygments lexer to apply."), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1419 | lexerList, |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1420 | lexerSel, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1421 | False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1422 | if ok and lexerName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1423 | return lexerName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1424 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1425 | return "" |
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 | def __languageMenuTriggered(self, act): |
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 | 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
|
1430 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1431 | @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
|
1432 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1433 | if act == self.noLanguageAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1434 | self.__resetLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1435 | elif act == self.pygmentsAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1436 | self.setLanguage("dummy.pygments") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1437 | elif act == self.pygmentsSelAct: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1438 | language = self.__selectPygmentsLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1439 | if language: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1440 | self.setLanguage("dummy.pygments", pyname=language) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1441 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1442 | language = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1443 | if language: |
2219
031fae60d778
Fixed an issue in the editor causing switching the language between Python2 and Python3 to only work every second time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2217
diff
changeset
|
1444 | self.filetype = language |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1445 | self.setLanguage(self.supportedLanguages[language][1]) |
3579
eccd12461319
BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3576
diff
changeset
|
1446 | self.checkSyntax() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1447 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1448 | def __languageChanged(self, language, propagate=True): |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1449 | """ |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1450 | Private slot handling a change of a connected editor's language. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1451 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1452 | @param language language to be set (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1453 | @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
|
1454 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1455 | if language == '': |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1456 | self.__resetLanguage(propagate=propagate) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1457 | elif language == "Guessed": |
5446
7f48d7f8eef0
Fixed a very very old bug in the editor that caused an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5416
diff
changeset
|
1458 | self.setLanguage("dummy.pygments", |
7f48d7f8eef0
Fixed a very very old bug in the editor that caused an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5416
diff
changeset
|
1459 | propagate=propagate) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1460 | elif language.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1461 | pyname = language.split("|", 1)[1] |
5446
7f48d7f8eef0
Fixed a very very old bug in the editor that caused an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5416
diff
changeset
|
1462 | self.setLanguage("dummy.pygments", pyname=pyname, |
7f48d7f8eef0
Fixed a very very old bug in the editor that caused an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5416
diff
changeset
|
1463 | propagate=propagate) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1464 | else: |
2219
031fae60d778
Fixed an issue in the editor causing switching the language between Python2 and Python3 to only work every second time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2217
diff
changeset
|
1465 | self.filetype = language |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1466 | self.setLanguage(self.supportedLanguages[language][1], |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1467 | propagate=propagate) |
3579
eccd12461319
BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3576
diff
changeset
|
1468 | self.checkSyntax() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1469 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1470 | def __resetLanguage(self, propagate=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1471 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1472 | Private method used to reset the language selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1473 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1474 | @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
|
1475 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1476 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1477 | self.lexer_ is not None and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1478 | (self.lexer_.lexer() == "container" or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1479 | self.lexer_.lexer() is None) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1480 | ): |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1481 | self.SCN_STYLENEEDED.disconnect(self.__styleNeeded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1482 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1483 | self.apiLanguage = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1484 | self.lexer_ = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1485 | self.__lexerReset = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1486 | self.setLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1487 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1488 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1489 | self.completer = None |
3059
16c93928cfc5
A little fix to the editor context menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3039
diff
changeset
|
1490 | useMonospaced = self.useMonospaced |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1491 | self.__setTextDisplay() |
7490
ebd9ae25bb1c
Editor: fixed a style issue when selecting no specific lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7393
diff
changeset
|
1492 | self.__setMarginsDisplay() |
3059
16c93928cfc5
A little fix to the editor context menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3039
diff
changeset
|
1493 | self.setMonospaced(useMonospaced) |
16c93928cfc5
A little fix to the editor context menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3039
diff
changeset
|
1494 | self.menuActs["MonospacedFont"].setChecked(self.useMonospaced) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1495 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1496 | if not self.inLanguageChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1497 | self.inLanguageChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1498 | self.languageChanged.emit(self.apiLanguage) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1499 | self.inLanguageChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1500 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1501 | def setLanguage(self, filename, initTextDisplay=True, propagate=True, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1502 | pyname=""): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1503 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1504 | Public method to set a lexer language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1505 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1506 | @param filename filename used to determine the associated lexer |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1507 | language (string) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1508 | @param initTextDisplay flag indicating an initialization of the text |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1509 | display is required as well (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1510 | @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
|
1511 | @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
|
1512 | """ |
5969
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1513 | # clear all warning and syntax error markers |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1514 | self.clearSyntaxError() |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1515 | self.clearWarnings() |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1516 | |
3059
16c93928cfc5
A little fix to the editor context menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3039
diff
changeset
|
1517 | self.menuActs["MonospacedFont"].setChecked(False) |
16c93928cfc5
A little fix to the editor context menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3039
diff
changeset
|
1518 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1519 | self.__lexerReset = False |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1520 | self.__bindLexer(filename, pyname=pyname) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1521 | self.__bindCompleter(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1522 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1523 | self.__checkLanguage() |
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 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1526 | if initTextDisplay: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1527 | self.__setTextDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1528 | |
5969
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1529 | # set the auto-completion and call-tips function |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1530 | self.__setAutoCompletion() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1531 | self.__setCallTips() |
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 | if not self.inLanguageChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1534 | self.inLanguageChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1535 | self.languageChanged.emit(self.apiLanguage) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1536 | self.inLanguageChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1537 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1538 | def __checkLanguage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1539 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1540 | 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
|
1541 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1542 | if self.apiLanguage == "": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1543 | self.noLanguageAct.setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1544 | elif self.apiLanguage == "Guessed": |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1545 | self.pygmentsAct.setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1546 | elif self.apiLanguage.startswith("Pygments|"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1547 | act = self.languagesActGrp.checkedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1548 | if act: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1549 | act.setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1550 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1551 | self.supportedLanguages[self.apiLanguage][2].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1552 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1553 | def projectLexerAssociationsChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1554 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1555 | 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
|
1556 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1557 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1558 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1559 | def __showContextMenuEncodings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1560 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1561 | Private slot handling the aboutToShow signal of the encodings context |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1562 | menu. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1563 | """ |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
1564 | self.showMenu.emit("Encodings", self.encodingsMenu, self) |
92
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 | def __encodingsMenuTriggered(self, act): |
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 | 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
|
1569 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1570 | @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
|
1571 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1572 | encoding = act.data() |
3393
080ace4829b4
Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3341
diff
changeset
|
1573 | self.setModified(True) |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
1574 | self.__encodingChanged("{0}-selected".format(encoding)) |
92
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 | def __checkEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1577 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1578 | 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
|
1579 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1580 | try: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1581 | (self.supportedEncodings[self.__normalizedEncoding()] |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1582 | .setChecked(True)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1583 | except (AttributeError, KeyError): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1584 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1585 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1586 | def __encodingChanged(self, encoding, propagate=True): |
92
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 | 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
|
1589 | |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
1590 | @param encoding changed encoding (string) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1591 | @keyparam propagate flag indicating to propagate the change (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1592 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1593 | self.encoding = encoding |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1594 | self.__checkEncoding() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1595 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1596 | if not self.inEncodingChanged and propagate: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1597 | self.inEncodingChanged = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1598 | self.encodingChanged.emit(self.encoding) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1599 | self.inEncodingChanged = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1600 | |
3393
080ace4829b4
Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3341
diff
changeset
|
1601 | def __normalizedEncoding(self, encoding=""): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1602 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1603 | Private method to calculate the normalized encoding string. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1604 | |
3393
080ace4829b4
Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3341
diff
changeset
|
1605 | @param encoding encoding to be normalized (string) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1606 | @return normalized encoding (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1607 | """ |
3393
080ace4829b4
Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3341
diff
changeset
|
1608 | if not encoding: |
080ace4829b4
Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3341
diff
changeset
|
1609 | encoding = self.encoding |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1610 | return ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1611 | encoding |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1612 | .replace("-default", "") |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1613 | .replace("-guessed", "") |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1614 | .replace("-selected", "") |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1615 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1616 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1617 | def __showContextMenuEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1618 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1619 | 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
|
1620 | """ |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
1621 | self.showMenu.emit("Eol", self.eolMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1622 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1623 | def __eolMenuTriggered(self, act): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1624 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1625 | Private method to handle the selection of an eol type. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1626 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1627 | @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
|
1628 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1629 | eol = act.data() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1630 | self.setEolModeByEolString(eol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1631 | self.convertEols(self.eolMode()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1632 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1633 | def __checkEol(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1634 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1635 | 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
|
1636 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1637 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1638 | self.supportedEols[self.getLineSeparator()].setChecked(True) |
875
606815a46bc0
Fixed a strange issue in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
832
diff
changeset
|
1639 | except (AttributeError, TypeError): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1640 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1641 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1642 | def __eolChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1643 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1644 | Private 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
|
1645 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1646 | self.__checkEol() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1647 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1648 | if not self.inEolChanged: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1649 | self.inEolChanged = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1650 | eol = self.getLineSeparator() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1651 | self.eolChanged.emit(eol) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1652 | self.inEolChanged = False |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1653 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1654 | def __showContextMenuSpellLanguages(self): |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1655 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1656 | Private slot handling the aboutToShow signal of the spell check |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1657 | languages context menu. |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1658 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1659 | self.showMenu.emit("SpellLanguage", self.spellLanguagesMenu, self) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1660 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1661 | def __spellLanguagesMenuTriggered(self, act): |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1662 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1663 | Private method to handle the selection of a spell check language. |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1664 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1665 | @param act reference to the action that was triggered |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1666 | @type QAction |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1667 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1668 | language = act.data() |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1669 | self.__setSpellingLanguage(language) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1670 | self.spellLanguageChanged.emit(language) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1671 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1672 | def __checkSpellLanguage(self): |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1673 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1674 | Private slot to check the selected spell check language action. |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1675 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1676 | language = self.getSpellingLanguage() |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1677 | try: |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1678 | self.supportedSpellLanguages[language].setChecked(True) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1679 | except (AttributeError, KeyError): |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1680 | pass |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1681 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1682 | def __spellLanguageChanged(self, language, propagate=True): |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1683 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1684 | Private slot to handle a change of the spell check language. |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1685 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1686 | @param language new spell check language |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1687 | @type str |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1688 | @param propagate flag indicating to propagate the change |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1689 | @type bool |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1690 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1691 | self.__setSpellingLanguage(language) |
7339
5e4d36f56085
Editor.py: added a fix for an issue reported and submitted by Hans-Peter Jansen.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7335
diff
changeset
|
1692 | self.__checkSpellLanguage() |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1693 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1694 | if not self.__inSpellLanguageChanged and propagate: |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1695 | self.__inSpellLanguageChanged = True |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1696 | self.spellLanguageChanged.emit(language) |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1697 | self.__inSpellLanguageChanged = False |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
1698 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1699 | def __bindLexer(self, filename, pyname=""): |
92
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 | 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
|
1702 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1703 | @param filename filename used to determine the associated lexer |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1704 | language (string) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1705 | @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
|
1706 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1707 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1708 | self.lexer_ is not None and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1709 | (self.lexer_.lexer() == "container" or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1710 | self.lexer_.lexer() is None) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1711 | ): |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1712 | self.SCN_STYLENEEDED.disconnect(self.__styleNeeded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1713 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1714 | language = "" |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1715 | if not self.filetype: |
4227
8a39c8b968f4
Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4201
diff
changeset
|
1716 | if filename: |
8a39c8b968f4
Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4201
diff
changeset
|
1717 | basename = os.path.basename(filename) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1718 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1719 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1720 | self.project.isProjectFile(filename) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1721 | ): |
4227
8a39c8b968f4
Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4201
diff
changeset
|
1722 | language = self.project.getEditorLexerAssoc(basename) |
8a39c8b968f4
Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4201
diff
changeset
|
1723 | if not language: |
8a39c8b968f4
Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4201
diff
changeset
|
1724 | language = Preferences.getEditorLexerAssoc(basename) |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1725 | if not language: |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1726 | bindName = self.__bindName(self.text(0)) |
4170
8bc578136279
Fixed an issue in the editor causing a traceback when setting a language for an empty editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4153
diff
changeset
|
1727 | if bindName: |
8bc578136279
Fixed an issue in the editor causing a traceback when setting a language for an empty editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4153
diff
changeset
|
1728 | language = Preferences.getEditorLexerAssoc(bindName) |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1729 | if language == "Python": |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1730 | # correction for Python |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1731 | pyVer = Utilities.determinePythonVersion( |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1732 | filename, self.text(0), self) |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1733 | language = "Python{0}".format(pyVer) |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
1734 | if language in ['Python3', 'MicroPython', 'Ruby', |
7335
07ed3d73bf58
Syntax Checker:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7310
diff
changeset
|
1735 | 'JavaScript', 'YAML', 'JSON']: |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1736 | self.filetype = language |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
1737 | else: |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1738 | self.filetype = "" |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1739 | else: |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1740 | language = self.filetype |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1741 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1742 | if language.startswith("Pygments|"): |
7525
6d1f954947bc
LexerPygments: fixed an issue loading styles and added some Pygments token types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7506
diff
changeset
|
1743 | pyname = language |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1744 | language = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1745 | |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
1746 | from . import Lexers |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1747 | self.lexer_ = Lexers.getLexer(language, self, pyname=pyname) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1748 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1749 | self.setLexer() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1750 | self.apiLanguage = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1751 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1752 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1753 | if pyname: |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
1754 | self.apiLanguage = "Pygments|{0}".format(pyname) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1755 | else: |
5969
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1756 | if language == "Protocol": |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1757 | self.apiLanguage = language |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1758 | else: |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1759 | # Change API language for lexer where QScintilla reports |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1760 | # an abbreviated name. |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1761 | self.apiLanguage = self.lexer_.language() |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1762 | if self.apiLanguage == "POV": |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1763 | self.apiLanguage = "Povray" |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1764 | elif self.apiLanguage == "PO": |
584c21b6587a
Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5967
diff
changeset
|
1765 | self.apiLanguage = "Gettext" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1766 | self.setLexer(self.lexer_) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1767 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1768 | if self.lexer_.lexer() == "container" or self.lexer_.lexer() is None: |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1769 | self.SCN_STYLENEEDED.connect(self.__styleNeeded) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1770 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1771 | # get the font for style 0 and set it as the default font |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
1772 | key = 'Scintilla/{0}/style0/font'.format(self.lexer_.language()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1773 | fdesc = Preferences.Prefs.settings.value(key) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1774 | if fdesc is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1775 | font = QFont(fdesc[0], int(fdesc[1])) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1776 | self.lexer_.setDefaultFont(font) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1777 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
6858
9d962e654978
Corrected the SubstyledLexer.hasSubStyle() method to SubstyledLexer.hasSubstyle() to be consistent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6845
diff
changeset
|
1778 | if self.lexer_.hasSubstyles(): |
6845
4680adb641e0
Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6843
diff
changeset
|
1779 | self.lexer_.readSubstyles(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1780 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1781 | # now set the lexer properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1782 | self.lexer_.initProperties() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1783 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1784 | # initialize the lexer APIs settings |
5349
bccda3b5920a
Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5158
diff
changeset
|
1785 | if self.project.isOpen() and self.project.isProjectFile(filename): |
bccda3b5920a
Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5158
diff
changeset
|
1786 | projectType = self.project.getProjectType() |
bccda3b5920a
Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5158
diff
changeset
|
1787 | else: |
bccda3b5920a
Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5158
diff
changeset
|
1788 | projectType = "" |
bccda3b5920a
Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5158
diff
changeset
|
1789 | api = self.vm.getAPIsManager().getAPIs(self.apiLanguage, |
bccda3b5920a
Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5158
diff
changeset
|
1790 | projectType=projectType) |
4133
3d868439dddc
Improved the handling of the various auto-completion actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4074
diff
changeset
|
1791 | if api is not None and not api.isEmpty(): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1792 | self.lexer_.setAPIs(api.getQsciAPIs()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1793 | self.acAPI = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1794 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1795 | self.acAPI = False |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1796 | self.autoCompletionAPIsAvailable.emit(self.acAPI) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1797 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
1798 | self.__setAnnotationStyles() |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
1799 | |
1566
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
1800 | self.lexer_.setDefaultColor(self.lexer_.color(0)) |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
1801 | self.lexer_.setDefaultPaper(self.lexer_.paper(0)) |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
1802 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1803 | def __styleNeeded(self, position): |
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 need for more styling. |
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 | @param position end position, that needs styling (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1808 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1809 | self.lexer_.styleText(self.getEndStyled(), position) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1810 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1811 | def getLexer(self): |
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 | 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
|
1814 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1815 | @return the lexer object (Lexer) |
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 | return self.lexer_ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1818 | |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1819 | def getLanguage(self, normalized=True, forPygments=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1820 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1821 | 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
|
1822 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1823 | @keyparam normalized flag indicating to normalize some Pygments |
812
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1824 | lexer names (boolean) |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1825 | @keyparam forPygments flag indicating to normalize some lexer |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1826 | names for Pygments (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1827 | @return language of the editor (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1828 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1829 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1830 | self.apiLanguage == "Guessed" or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1831 | self.apiLanguage.startswith("Pygments|") |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
1832 | ): |
812
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1833 | lang = self.lexer_.name() |
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1834 | if normalized: |
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1835 | # adjust some Pygments lexer names |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
1836 | if lang == "Python 3": |
812
240adf04a50e
Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
811
diff
changeset
|
1837 | lang = "Python3" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1838 | else: |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1839 | lang = self.apiLanguage |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1840 | if forPygments: |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1841 | # adjust some names to Pygments lexer names |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
1842 | if lang == "Python3": |
1295
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1843 | lang = "Python 3" |
b3db3070d104
Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1196
diff
changeset
|
1844 | return lang |
5358
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1845 | |
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1846 | def getApiLanguage(self): |
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1847 | """ |
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1848 | Public method to get the API language of the editor. |
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1849 | |
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1850 | @return API language |
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1851 | @rtype str |
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1852 | """ |
2584d0a08bf4
Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5349
diff
changeset
|
1853 | return self.apiLanguage |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1854 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1855 | def __bindCompleter(self, filename): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1856 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1857 | 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
|
1858 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1859 | @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
|
1860 | completer language (string) |
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 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1863 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1864 | self.completer = None |
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 | filename = os.path.basename(filename) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1867 | apiLanguage = Preferences.getEditorLexerAssoc(filename) |
811
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1868 | if apiLanguage == "": |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1869 | pyVer = self.__getPyVersion() |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1870 | if pyVer: |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
1871 | apiLanguage = "Python{0}".format(pyVer) |
811
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1872 | elif self.isRubyFile(): |
2ed99614dbf4
Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
1873 | apiLanguage = "Ruby" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1874 | |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
1875 | from . import TypingCompleters |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1876 | self.completer = TypingCompleters.getCompleter(apiLanguage, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1877 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1878 | def getCompleter(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1879 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1880 | 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
|
1881 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1882 | @return the completer object (CompleterBase) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1883 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1884 | return self.completer |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1885 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1886 | def __modificationChanged(self, m): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1887 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1888 | Private slot to handle the modificationChanged signal. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1889 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1890 | It emits the signal modificationStatusChanged with parameters |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1891 | m and self. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1892 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1893 | @param m modification status |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1894 | """ |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
1895 | if not m and bool(self.fileName): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1896 | self.lastModified = QFileInfo(self.fileName).lastModified() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1897 | self.modificationStatusChanged.emit(m, self) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1898 | self.undoAvailable.emit(self.isUndoAvailable()) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
1899 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1900 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1901 | def __cursorPositionChanged(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1902 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1903 | Private slot to handle the cursorPositionChanged signal. |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1904 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
1905 | It emits the signal cursorChanged with parameters fileName, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1906 | line and pos. |
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 | @param line line number of the cursor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1909 | @param index position in line of the cursor |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1910 | """ |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
1911 | self.cursorChanged.emit(self.fileName, line + 1, index) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1912 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1913 | if Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1914 | self.__markOccurrencesTimer.stop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1915 | self.__markOccurrencesTimer.start() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1916 | |
2768
eab35f6e709f
Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2659
diff
changeset
|
1917 | if self.lastLine != line: |
eab35f6e709f
Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2659
diff
changeset
|
1918 | self.cursorLineChanged.emit(line) |
eab35f6e709f
Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2659
diff
changeset
|
1919 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1920 | if self.spell is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1921 | # do spell checking |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1922 | doSpelling = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1923 | if self.lastLine == line: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1924 | start, end = self.getWordBoundaries( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1925 | line, index, useWordChars=False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1926 | if start <= self.lastIndex and self.lastIndex <= end: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1927 | doSpelling = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1928 | if doSpelling: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1929 | pos = self.positionFromLineIndex(self.lastLine, self.lastIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1930 | self.spell.checkWord(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1931 | |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
1932 | if self.lastLine != line: |
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
1933 | self.__markerMap.update() |
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
1934 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1935 | self.lastLine = line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1936 | self.lastIndex = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1937 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1938 | def __modificationReadOnly(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 | Private slot to handle the modificationAttempted signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1941 | """ |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
1942 | E5MessageBox.warning( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
1943 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1944 | self.tr("Modification of Read Only file"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1945 | self.tr("""You are attempting to change a read only file. """ |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
1946 | """Please save to a different file first.""")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1947 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1948 | def setNoName(self, noName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1949 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1950 | 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
|
1951 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1952 | @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
|
1953 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1954 | self.noName = noName |
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 | def getNoName(self): |
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 | 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
|
1959 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1960 | @return display string for this unnamed editor (string) |
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 | return self.noName |
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 | def getFileName(self): |
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 | 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
|
1967 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1968 | @return filename of the displayed file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1969 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1970 | return self.fileName |
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 getFileType(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 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
|
1975 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1976 | @return type of the displayed file (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1977 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1978 | return self.filetype |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
1979 | |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1980 | def getFileTypeByFlag(self): |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1981 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1982 | Public method to return the type of the file, if it was set by an |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1983 | eflag: marker. |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1984 | |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1985 | @return type of the displayed file, if set by an eflag: marker or an |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
1986 | empty string (string) |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1987 | """ |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1988 | if self.filetypeByFlag: |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1989 | return self.filetype |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1990 | else: |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1991 | return "" |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
1992 | |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1993 | def determineFileType(self): |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1994 | """ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1995 | Public method to determine the file type using various tests. |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1996 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1997 | @return type of the displayed file or an empty string (string) |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1998 | """ |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
1999 | ftype = self.filetype |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2000 | if not ftype: |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2001 | pyVer = self.__getPyVersion() |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2002 | if pyVer: |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2003 | ftype = "Python{0}".format(pyVer) |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2004 | elif self.isRubyFile(): |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2005 | ftype = "Ruby" |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2006 | else: |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2007 | ftype = "" |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2008 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2009 | return ftype |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2010 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2011 | def getEncoding(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2012 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2013 | Public method to return the current encoding. |
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 | @return current encoding (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2016 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2017 | return self.encoding |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2018 | |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2019 | def __getPyVersion(self): |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2020 | """ |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2021 | Private method to return the Python main version or 0 if it's |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2022 | not a Python file at all. |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2023 | |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2024 | @return Python version or 0 if it's not a Python file (int) |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2025 | """ |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2026 | return Utilities.determinePythonVersion( |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2027 | self.fileName, self.text(0), self) |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2028 | |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2029 | def isPyFile(self): |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2030 | """ |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2031 | Public method to return a flag indicating a Python (2 or 3) file. |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2032 | |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2033 | @return flag indicating a Python3 file (boolean) |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2034 | """ |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2035 | return self.__getPyVersion() == 3 |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2036 | |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2037 | def isPy2File(self): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2038 | """ |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2039 | Public method to return a flag indicating a Python2 file. |
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2040 | |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2041 | @return flag reporting always False |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2042 | @rtype bool |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2043 | """ |
7637
c878e8255972
Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
2044 | # kept to keep the API compatible for plugins |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
2045 | return False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2046 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2047 | def isPy3File(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2048 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2049 | 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
|
2050 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2051 | @return flag indicating a Python3 file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2052 | """ |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
2053 | return self.__getPyVersion() == 3 |
7164
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2054 | |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2055 | def isMicroPythonFile(self): |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2056 | """ |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2057 | Public method to return a flag indicating a MicroPython file. |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2058 | |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2059 | @return flag indicating a MicroPython file |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2060 | @rtype bool |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2061 | """ |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2062 | if self.filetype == "MicroPython": |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2063 | return True |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2064 | |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
2065 | return False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2066 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2067 | def isRubyFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2068 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2069 | 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
|
2070 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2071 | @return flag indicating a Ruby file (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2072 | """ |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2073 | if self.filetype == "Ruby": |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2074 | return True |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2075 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2076 | if self.filetype == "": |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2077 | line0 = self.text(0) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2078 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2079 | line0.startswith("#!") and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2080 | "ruby" in line0 |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2081 | ): |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
2082 | self.filetype = "Ruby" |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2083 | return True |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2084 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2085 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2086 | bool(self.fileName) and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2087 | os.path.splitext(self.fileName)[1] in |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2088 | self.dbs.getExtensions('Ruby') |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2089 | ): |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
2090 | self.filetype = "Ruby" |
991
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2091 | return True |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2092 | |
5ec5e707dfa5
Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
989
diff
changeset
|
2093 | return False |
3438
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2094 | |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2095 | def isJavascriptFile(self): |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2096 | """ |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2097 | Public method to return a flag indicating a Javascript file. |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2098 | |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2099 | @return flag indicating a Javascript file (boolean) |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2100 | """ |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2101 | if self.filetype == "JavaScript": |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2102 | return True |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2103 | |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2104 | if self.filetype == "": |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2105 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2106 | self.fileName and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2107 | os.path.splitext(self.fileName)[1] == ".js" |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2108 | ): |
3438
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2109 | self.filetype = "JavaScript" |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2110 | return True |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2111 | |
29717a5e8b97
Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3395
diff
changeset
|
2112 | return False |
1196
77da430b4080
Added an action to preview the file in the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1169
diff
changeset
|
2113 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2114 | def highlightVisible(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2115 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2116 | 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
|
2117 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2118 | if self.lastHighlight is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2119 | lineno = self.markerLine(self.lastHighlight) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2120 | self.ensureVisible(lineno + 1) |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2121 | |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2122 | def highlight(self, line=None, error=False, syntaxError=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2123 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2124 | Public method to highlight [or de-highlight] a particular line. |
92
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 | @param line line number to highlight (integer) |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2127 | @param error flag indicating whether the error highlight should be |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2128 | used (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2129 | @param syntaxError flag indicating a syntax error (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2130 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2131 | if line is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2132 | self.lastHighlight = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2133 | if self.lastErrorMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2134 | self.markerDeleteHandle(self.lastErrorMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2135 | self.lastErrorMarker = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2136 | if self.lastCurrMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2137 | self.markerDeleteHandle(self.lastCurrMarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2138 | self.lastCurrMarker = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2139 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2140 | if error: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2141 | if self.lastErrorMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2142 | self.markerDeleteHandle(self.lastErrorMarker) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2143 | self.lastErrorMarker = self.markerAdd(line - 1, self.errorline) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2144 | self.lastHighlight = self.lastErrorMarker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2145 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2146 | if self.lastCurrMarker is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2147 | self.markerDeleteHandle(self.lastCurrMarker) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2148 | self.lastCurrMarker = self.markerAdd(line - 1, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2149 | self.currentline) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2150 | self.lastHighlight = self.lastCurrMarker |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2151 | self.setCursorPosition(line - 1, 0) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2152 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2153 | def getHighlightPosition(self): |
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 | 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
|
2156 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2157 | @return line number of the highlight bar (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2158 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2159 | if self.lastHighlight is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2160 | return self.markerLine(self.lastHighlight) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2161 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2162 | return 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2163 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2164 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2165 | ## Breakpoint handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2166 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2167 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2168 | def __modified(self, pos, mtype, text, length, linesAdded, line, foldNow, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2169 | foldPrev, token, annotationLinesAdded): |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2170 | """ |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2171 | Private method to handle changes of the number of lines. |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2172 | |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2173 | @param pos start position of change (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2174 | @param mtype flags identifying the change (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2175 | @param text text that is given to the Undo system (string) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2176 | @param length length of the change (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2177 | @param linesAdded number of added/deleted lines (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2178 | @param line line number of a fold level or marker change (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2179 | @param foldNow new fold level (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2180 | @param foldPrev previous fold level (integer) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2181 | @param token ??? |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2182 | @param annotationLinesAdded number of added/deleted annotation lines |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2183 | (integer) |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2184 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2185 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2186 | mtype & (self.SC_MOD_INSERTTEXT | self.SC_MOD_DELETETEXT) and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2187 | linesAdded != 0 |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2188 | ): |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2189 | if self.breaks: |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2190 | bps = [] # list of breakpoints |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2191 | for handle, (ln, cond, temp, enabled, ignorecount) in ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2192 | self.breaks.items() |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2193 | ): |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2194 | line = self.markerLine(handle) + 1 |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2195 | if ln != line: |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2196 | bps.append((ln, line)) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2197 | self.breaks[handle] = (line, cond, temp, enabled, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2198 | ignorecount) |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2199 | self.inLinesChanged = True |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2200 | for ln, line in sorted(bps, reverse=linesAdded > 0): |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2201 | index1 = self.breakpointModel.getBreakPointIndex( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2202 | self.fileName, ln) |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2203 | index2 = self.breakpointModel.index(index1.row(), 1) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2204 | self.breakpointModel.setData(index2, line) |
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2205 | self.inLinesChanged = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2206 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2207 | def __restoreBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2208 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2209 | Private method to restore the breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2210 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2211 | for handle in list(self.breaks.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2212 | self.markerDeleteHandle(handle) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2213 | self.__addBreakPoints( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2214 | QModelIndex(), 0, self.breakpointModel.rowCount() - 1) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2215 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2216 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2217 | def __deleteBreakPoints(self, parentIndex, start, end): |
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 | Private slot to delete breakpoints. |
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 | @param parentIndex index of parent item (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2222 | @param start start row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2223 | @param end end row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2224 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2225 | for row in range(start, end + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2226 | index = self.breakpointModel.index(row, 0, parentIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2227 | fn, lineno = self.breakpointModel.getBreakPointByIndex(index)[0:2] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2228 | if fn == self.fileName: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2229 | self.clearBreakpoint(lineno) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2230 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2231 | def __changeBreakPoints(self, startIndex, endIndex): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2232 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2233 | Private slot to set changed breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2234 | |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2235 | @param startIndex start index of the breakpoints being changed |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2236 | (QModelIndex) |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2237 | @param endIndex end index of the breakpoints being changed |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2238 | (QModelIndex) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2239 | """ |
1928
adde55ed4ce5
Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1897
diff
changeset
|
2240 | if not self.inLinesChanged: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2241 | self.__addBreakPoints(QModelIndex(), startIndex.row(), |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2242 | endIndex.row()) |
92
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 | def __breakPointDataAboutToBeChanged(self, startIndex, endIndex): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2245 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2246 | Private slot to handle the dataAboutToBeChanged signal of the |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2247 | breakpoint model. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2248 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2249 | @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
|
2250 | @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
|
2251 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2252 | self.__deleteBreakPoints(QModelIndex(), startIndex.row(), |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2253 | endIndex.row()) |
92
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 | def __addBreakPoints(self, parentIndex, start, end): |
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 | Private slot to add breakpoints. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2258 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2259 | @param parentIndex index of parent item (QModelIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2260 | @param start start row (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2261 | @param end end row (integer) |
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 | for row in range(start, end + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2264 | index = self.breakpointModel.index(row, 0, parentIndex) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2265 | fn, line, cond, temp, enabled, ignorecount = ( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2266 | self.breakpointModel.getBreakPointByIndex(index)[:6] |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2267 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2268 | if fn == self.fileName: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2269 | self.newBreakpointWithProperties( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2270 | line, (cond, temp, enabled, ignorecount)) |
92
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 | def clearBreakpoint(self, line): |
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 | Public method to clear a breakpoint. |
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 | 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
|
2277 | 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
|
2278 | |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2279 | @param line line number of the breakpoint (integer) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2280 | """ |
1758
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
2281 | if self.inLinesChanged: |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
2282 | return |
e18f96b1714b
A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1754
diff
changeset
|
2283 | |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2284 | for handle in self.breaks: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2285 | if self.markerLine(handle) == line - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2286 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2287 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2288 | # not found, simply ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2289 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2290 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2291 | del self.breaks[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2292 | self.markerDeleteHandle(handle) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2293 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2294 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2295 | def newBreakpointWithProperties(self, line, properties): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2296 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
2297 | Public method to set a new breakpoint and its properties. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2298 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2299 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2300 | @param properties properties for the breakpoint (tuple) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2301 | (condition, temporary flag, enabled flag, ignore count) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2302 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2303 | if not properties[2]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2304 | marker = self.dbreakpoint |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2305 | elif properties[0]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2306 | 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
|
2307 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2308 | 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
|
2309 | |
1930
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
2310 | if self.markersAtLine(line - 1) & self.breakpointMask == 0: |
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
2311 | handle = self.markerAdd(line - 1, marker) |
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
2312 | self.breaks[handle] = (line,) + properties |
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
2313 | self.breakpointToggled.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2314 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2315 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2316 | def __toggleBreakpoint(self, line, temporary=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2317 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2318 | Private method to toggle a breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2319 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2320 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2321 | @param temporary flag indicating a temporary breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2322 | """ |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2323 | for handle in self.breaks: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2324 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2325 | # delete breakpoint or toggle it to the next state |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2326 | index = self.breakpointModel.getBreakPointIndex( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2327 | self.fileName, line) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2328 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2329 | Preferences.getDebugger("ThreeStateBreakPoints") and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2330 | not self.breakpointModel.isBreakPointTemporaryByIndex( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2331 | index) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
2332 | ): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2333 | self.breakpointModel.deleteBreakPointByIndex(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2334 | self.__addBreakPoint(line, True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2335 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2336 | self.breakpointModel.deleteBreakPointByIndex(index) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
2337 | self.breakpointToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2338 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2339 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2340 | self.__addBreakPoint(line, temporary) |
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 | def __addBreakPoint(self, line, temporary): |
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 | Private method to add a new breakpoint. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2345 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2346 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2347 | @param temporary flag indicating a temporary breakpoint (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2348 | """ |
5158
b85f06f38f21
Removed the breakpoint related stuff for Ruby files in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5051
diff
changeset
|
2349 | if self.fileName and self.isPyFile(): |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
2350 | self.breakpointModel.addBreakPoint( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
2351 | self.fileName, line, ('', temporary, True, 0)) |
486
e4711a55e482
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
478
diff
changeset
|
2352 | self.breakpointToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2353 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2354 | def __toggleBreakpointEnabled(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2355 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2356 | Private method to toggle a breakpoints enabled status. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2357 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2358 | @param line line number of the breakpoint (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2359 | """ |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2360 | for handle in self.breaks: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2361 | if self.markerLine(handle) == line - 1: |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2362 | index = self.breakpointModel.getBreakPointIndex( |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2363 | self.fileName, line) |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2364 | self.breakpointModel.setBreakPointEnabledByIndex( |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2365 | index, not self.breaks[handle][3]) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2366 | break |
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 | def curLineHasBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2369 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2370 | Public method to check for the presence of a breakpoint at the current |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2371 | line. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2372 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2373 | @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
|
2374 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2375 | line, _ = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2376 | return self.markersAtLine(line) & self.breakpointMask != 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2377 | |
3325
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2378 | def getBreakpointLines(self): |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2379 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2380 | Public method to get the lines containing a breakpoint. |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2381 | |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2382 | @return list of lines containing a breakpoint (list of integer) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2383 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2384 | lines = [] |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2385 | line = -1 |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2386 | while True: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2387 | line = self.markerFindNext(line + 1, self.breakpointMask) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2388 | if line < 0: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2389 | break |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2390 | else: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2391 | lines.append(line) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2392 | return lines |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2393 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2394 | def hasBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2395 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2396 | 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
|
2397 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2398 | @return flag indicating the presence of breakpoints (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2399 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2400 | return len(self.breaks) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2401 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2402 | def __menuToggleTemporaryBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2403 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2404 | Private slot to handle the 'Toggle temporary breakpoint' context menu |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2405 | action. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2406 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2407 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2408 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2409 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2410 | self.__toggleBreakpoint(self.line, 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2411 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2412 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2413 | def menuToggleBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2414 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2415 | 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
|
2416 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2417 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2418 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2419 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2420 | self.__toggleBreakpoint(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2421 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2422 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2423 | def __menuToggleBreakpointEnabled(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2424 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2425 | Private slot to handle the 'Enable/Disable breakpoint' context menu |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2426 | action. |
92
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 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2429 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2430 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2431 | self.__toggleBreakpointEnabled(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2432 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2433 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2434 | def menuEditBreakpoint(self, line=None): |
92
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 | 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
|
2437 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2438 | @param line linenumber of the breakpoint to edit |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2439 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2440 | if line is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2441 | self.line = line - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2442 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2443 | self.line, index = self.getCursorPosition() |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2444 | |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2445 | for handle in self.breaks: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2446 | if self.markerLine(handle) == self.line: |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2447 | ln, cond, temp, enabled, ignorecount = self.breaks[handle] |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2448 | index = self.breakpointModel.getBreakPointIndex(self.fileName, |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2449 | ln) |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2450 | if not index.isValid(): |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2451 | return |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2452 | |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2453 | from Debugger.EditBreakpointDialog import EditBreakpointDialog |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2454 | dlg = EditBreakpointDialog( |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2455 | (self.fileName, ln), |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2456 | (cond, temp, enabled, ignorecount), |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2457 | self.condHistory, self, modal=True) |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2458 | if dlg.exec_() == QDialog.Accepted: |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2459 | cond, temp, enabled, ignorecount = dlg.getData() |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2460 | self.breakpointModel.setBreakPointByIndex( |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2461 | index, self.fileName, ln, |
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2462 | (cond, temp, enabled, ignorecount)) |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
2463 | break |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2464 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2465 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2466 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2467 | def menuNextBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2468 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2469 | 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
|
2470 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2471 | line, index = self.getCursorPosition() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2472 | if line == self.lines() - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2473 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2474 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2475 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2476 | bpline = self.markerFindNext(line, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2477 | if bpline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2478 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2479 | bpline = self.markerFindNext(0, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2480 | if bpline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2481 | self.setCursorPosition(bpline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2482 | self.ensureLineVisible(bpline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2483 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2484 | def menuPreviousBreakpoint(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2485 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2486 | 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
|
2487 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2488 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2489 | if line == 0: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2490 | line = self.lines() - 1 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2491 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2492 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2493 | bpline = self.markerFindPrevious(line, self.breakpointMask) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2494 | if bpline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2495 | # wrap around |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2496 | bpline = self.markerFindPrevious( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2497 | self.lines() - 1, self.breakpointMask) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2498 | if bpline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2499 | self.setCursorPosition(bpline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2500 | self.ensureLineVisible(bpline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2501 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2502 | def __menuClearBreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2503 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2504 | 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
|
2505 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2506 | self.__clearBreakpoints(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2507 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2508 | def __clearBreakpoints(self, fileName): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2509 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2510 | Private slot to clear all breakpoints. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2511 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
2512 | @param fileName name of the file (string) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2513 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2514 | idxList = [] |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2515 | for (ln, _, _, _, _) in self.breaks.values(): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2516 | index = self.breakpointModel.getBreakPointIndex(fileName, ln) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2517 | if index.isValid(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2518 | idxList.append(index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2519 | if idxList: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2520 | self.breakpointModel.deleteBreakPoints(idxList) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2521 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2522 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2523 | ## Bookmark handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2524 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2525 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2526 | def toggleBookmark(self, line): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2527 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2528 | Public method to toggle a bookmark. |
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 | @param line line number of the bookmark (integer) |
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 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2533 | if self.markerLine(handle) == line - 1: |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2534 | self.bookmarks.remove(handle) |
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2535 | self.markerDeleteHandle(handle) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2536 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2537 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2538 | # set a new bookmark |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2539 | handle = self.markerAdd(line - 1, self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2540 | self.bookmarks.append(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2541 | self.bookmarkToggled.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2542 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2543 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2544 | def getBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2545 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2546 | Public method to retrieve the bookmarks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2547 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2548 | @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
|
2549 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2550 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2551 | bmlist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2552 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2553 | bmlist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2554 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2555 | bmlist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2556 | return bmlist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2557 | |
3325
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2558 | def getBookmarkLines(self): |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2559 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2560 | Public method to get the lines containing a bookmark. |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2561 | |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2562 | @return list of lines containing a bookmark (list of integer) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2563 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2564 | lines = [] |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2565 | line = -1 |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2566 | while True: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2567 | line = self.markerFindNext(line + 1, 1 << self.bookmark) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2568 | if line < 0: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2569 | break |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2570 | else: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2571 | lines.append(line) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2572 | return lines |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2573 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2574 | def hasBookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2575 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2576 | Public method to check for the presence of bookmarks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2577 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2578 | @return flag indicating the presence of bookmarks (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2579 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2580 | return len(self.bookmarks) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2581 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2582 | def menuToggleBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2583 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2584 | 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
|
2585 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2586 | if self.line < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2587 | self.line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2588 | self.line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2589 | self.toggleBookmark(self.line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2590 | self.line = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2591 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2592 | def nextBookmark(self): |
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 | 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
|
2595 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2596 | line, index = self.getCursorPosition() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2597 | if line == self.lines() - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2598 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2599 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2600 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2601 | bmline = self.markerFindNext(line, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2602 | if bmline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2603 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2604 | bmline = self.markerFindNext(0, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2605 | if bmline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2606 | self.setCursorPosition(bmline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2607 | self.ensureLineVisible(bmline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2608 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2609 | def previousBookmark(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2610 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2611 | 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
|
2612 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2613 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2614 | if line == 0: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2615 | line = self.lines() - 1 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2616 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2617 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2618 | bmline = self.markerFindPrevious(line, 1 << self.bookmark) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2619 | if bmline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2620 | # wrap around |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2621 | bmline = self.markerFindPrevious( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2622 | self.lines() - 1, 1 << self.bookmark) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2623 | if bmline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2624 | self.setCursorPosition(bmline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2625 | self.ensureLineVisible(bmline) |
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 | def clearBookmarks(self): |
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 | 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
|
2630 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2631 | for handle in self.bookmarks: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2632 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2633 | self.bookmarks = [] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2634 | self.bookmarkToggled.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2635 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2636 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2637 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2638 | ## Printing methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2639 | ########################################################################### |
92
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 | def printFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2642 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2643 | Public slot to print the text. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2644 | """ |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
2645 | from .Printer import Printer |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2646 | printer = Printer(mode=QPrinter.HighResolution) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2647 | sb = e5App().getObject("UserInterface").statusBar() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2648 | printDialog = QPrintDialog(printer, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2649 | if self.hasSelectedText(): |
4074
95c24977f68f
Fixed an issue in the editor and minieditor caused by using an obsolete method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4029
diff
changeset
|
2650 | printDialog.setOption(QAbstractPrintDialog.PrintSelection, True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2651 | if printDialog.exec_() == QDialog.Accepted: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
2652 | sb.showMessage(self.tr('Printing...')) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2653 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2654 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2655 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2656 | printer.setDocName(os.path.basename(fn)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2657 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2658 | printer.setDocName(self.noName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2659 | if printDialog.printRange() == QAbstractPrintDialog.Selection: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2660 | # get the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2661 | fromLine, fromIndex, toLine, toIndex = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2662 | if toIndex == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2663 | toLine -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2664 | # Qscintilla seems to print one line more than told |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2665 | res = printer.printRange(self, fromLine, toLine - 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2666 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2667 | res = printer.printRange(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2668 | if res: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
2669 | sb.showMessage(self.tr('Printing completed'), 2000) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2670 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
2671 | sb.showMessage(self.tr('Error while printing'), 2000) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2672 | QApplication.processEvents() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2673 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
2674 | sb.showMessage(self.tr('Printing aborted'), 2000) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2675 | QApplication.processEvents() |
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 printPreviewFile(self): |
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 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
|
2680 | """ |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
2681 | from PyQt5.QtPrintSupport import QPrintPreviewDialog |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
2682 | from .Printer import Printer |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2683 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2684 | printer = Printer(mode=QPrinter.HighResolution) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2685 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2686 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2687 | printer.setDocName(os.path.basename(fn)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2688 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2689 | printer.setDocName(self.noName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2690 | preview = QPrintPreviewDialog(printer, self) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2691 | preview.paintRequested.connect(self.__printPreview) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2692 | preview.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2693 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2694 | def __printPreview(self, printer): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2695 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2696 | Private slot to generate a print preview. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2697 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2698 | @param printer reference to the printer object |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2699 | (QScintilla.Printer.Printer) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2700 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2701 | printer.printRange(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2702 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2703 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2704 | ## Task handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2705 | ########################################################################### |
3325
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2706 | |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2707 | def getTaskLines(self): |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2708 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2709 | Public method to get the lines containing a task. |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2710 | |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2711 | @return list of lines containing a task (list of integer) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2712 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2713 | lines = [] |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2714 | line = -1 |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2715 | while True: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2716 | line = self.markerFindNext(line + 1, 1 << self.taskmarker) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2717 | if line < 0: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2718 | break |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2719 | else: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2720 | lines.append(line) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2721 | return lines |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2722 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2723 | def hasTaskMarkers(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2724 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2725 | 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
|
2726 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2727 | @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
|
2728 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2729 | return self.__hasTaskMarkers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2730 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2731 | def nextTask(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2732 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2733 | 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
|
2734 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2735 | line, index = self.getCursorPosition() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2736 | if line == self.lines() - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2737 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2738 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2739 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2740 | taskline = self.markerFindNext(line, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2741 | if taskline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2742 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2743 | taskline = self.markerFindNext(0, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2744 | if taskline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2745 | self.setCursorPosition(taskline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2746 | self.ensureLineVisible(taskline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2747 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2748 | def previousTask(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2749 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2750 | 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
|
2751 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2752 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2753 | if line == 0: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
2754 | line = self.lines() - 1 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2755 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2756 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2757 | taskline = self.markerFindPrevious(line, 1 << self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2758 | if taskline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2759 | # wrap around |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2760 | taskline = self.markerFindPrevious( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2761 | self.lines() - 1, 1 << self.taskmarker) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2762 | if taskline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2763 | self.setCursorPosition(taskline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2764 | self.ensureLineVisible(taskline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2765 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2766 | def extractTasks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2767 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2768 | Public slot to extract all tasks. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2769 | """ |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
2770 | from Tasks.Task import Task |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2771 | markers = { |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2772 | Task.TypeWarning: |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
2773 | Preferences.getTasks("TasksWarningMarkers").split(), |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2774 | Task.TypeNote: |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
2775 | Preferences.getTasks("TasksNoteMarkers").split(), |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2776 | Task.TypeTodo: |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
2777 | Preferences.getTasks("TasksTodoMarkers").split(), |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2778 | Task.TypeFixme: |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
2779 | Preferences.getTasks("TasksFixmeMarkers").split(), |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2780 | } |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2781 | txtList = self.text().split(self.getLineSeparator()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2782 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2783 | # clear all task markers and tasks |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2784 | self.markerDeleteAll(self.taskmarker) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2785 | self.taskViewer.clearFileTasks(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2786 | self.__hasTaskMarkers = False |
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 | # now search tasks and record them |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2789 | lineIndex = -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2790 | for line in txtList: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2791 | lineIndex += 1 |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2792 | shouldBreak = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2793 | |
6493
b64d6d0b4175
TaskViewer, Editor: added code to mark a line as not containing a task with '__NO-TASK__'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6481
diff
changeset
|
2794 | if line.endswith("__NO-TASK__"): |
b64d6d0b4175
TaskViewer, Editor: added code to mark a line as not containing a task with '__NO-TASK__'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6481
diff
changeset
|
2795 | # ignore potential task marker |
b64d6d0b4175
TaskViewer, Editor: added code to mark a line as not containing a task with '__NO-TASK__'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6481
diff
changeset
|
2796 | continue |
b64d6d0b4175
TaskViewer, Editor: added code to mark a line as not containing a task with '__NO-TASK__'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6481
diff
changeset
|
2797 | |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2798 | for taskType, taskMarkers in markers.items(): |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2799 | for taskMarker in taskMarkers: |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2800 | index = line.find(taskMarker) |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2801 | if index > -1: |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2802 | task = line[index:] |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2803 | self.markerAdd(lineIndex, self.taskmarker) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2804 | self.taskViewer.addFileTask( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2805 | task, self.fileName, lineIndex + 1, taskType) |
1819
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2806 | self.__hasTaskMarkers = True |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2807 | shouldBreak = True |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2808 | break |
cfcfd617216a
Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1807
diff
changeset
|
2809 | if shouldBreak: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2810 | break |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
2811 | self.taskMarkersUpdated.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2812 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
2813 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2814 | ########################################################################### |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2815 | ## Change tracing methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2816 | ########################################################################### |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2817 | |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2818 | def __createChangeMarkerPixmap(self, key, size=16, width=4): |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2819 | """ |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2820 | Private method to create a pixmap for the change markers. |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2821 | |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2822 | @param key key of the color to use (string) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2823 | @param size size of the pixmap (integer) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2824 | @param width width of the marker line (integer) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2825 | @return create pixmap (QPixmap) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2826 | """ |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2827 | pixmap = QPixmap(size, size) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2828 | pixmap.fill(Qt.transparent) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2829 | painter = QPainter(pixmap) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2830 | painter.fillRect(size - 4, 0, 4, size, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2831 | Preferences.getEditorColour(key)) |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2832 | painter.end() |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2833 | return pixmap |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2834 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2835 | def __initOnlineChangeTrace(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2836 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2837 | Private slot to initialize the online change trace. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2838 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2839 | self.__hasChangeMarkers = False |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2840 | self.__oldText = self.text() |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2841 | self.__lastSavedText = self.text() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2842 | self.__onlineChangeTraceTimer = QTimer(self) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2843 | self.__onlineChangeTraceTimer.setSingleShot(True) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2844 | self.__onlineChangeTraceTimer.setInterval( |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2845 | Preferences.getEditor("OnlineChangeTraceInterval")) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2846 | self.__onlineChangeTraceTimer.timeout.connect( |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2847 | self.__onlineChangeTraceTimerTimeout) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2848 | self.textChanged.connect(self.__resetOnlineChangeTraceTimer) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2849 | |
2189
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2850 | def __reinitOnlineChangeTrace(self): |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2851 | """ |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2852 | Private slot to re-initialize the online change trace. |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2853 | """ |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2854 | self.__oldText = self.text() |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2855 | self.__lastSavedText = self.text() |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2856 | self.__deleteAllChangeMarkers() |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
2857 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2858 | def __resetOnlineChangeTraceTimer(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2859 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2860 | Private method to reset the online syntax check timer. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2861 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2862 | if Preferences.getEditor("OnlineChangeTrace"): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2863 | self.__onlineChangeTraceTimer.stop() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2864 | self.__onlineChangeTraceTimer.start() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2865 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2866 | def __onlineChangeTraceTimerTimeout(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2867 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2868 | Private slot to mark added and changed lines. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2869 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2870 | self.__deleteAllChangeMarkers() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2871 | |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2872 | # step 1: mark saved changes |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2873 | oldL = self.__oldText.splitlines() |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2874 | newL = self.__lastSavedText.splitlines() |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2875 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2876 | |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2877 | for token, _, _, j1, j2 in matcher.get_opcodes(): |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2878 | if token in ["insert", "replace"]: |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2879 | for lineNo in range(j1, j2): |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2880 | self.markerAdd(lineNo, self.__changeMarkerSaved) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2881 | self.__hasChangeMarkers = True |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2882 | |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2883 | # step 2: mark unsaved changes |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2884 | oldL = self.__lastSavedText.splitlines() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2885 | newL = self.text().splitlines() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2886 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2887 | |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2888 | for token, _, _, j1, j2 in matcher.get_opcodes(): |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2889 | if token in ["insert", "replace"]: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2890 | for lineNo in range(j1, j2): |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2891 | self.markerAdd(lineNo, self.__changeMarkerUnsaved) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2892 | self.__hasChangeMarkers = True |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2893 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2894 | if self.__hasChangeMarkers: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2895 | self.changeMarkersUpdated.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2896 | self.__markerMap.update() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2897 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2898 | def __resetOnlineChangeTraceInfo(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2899 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2900 | Private slot to reset the online change trace info. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2901 | """ |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2902 | self.__lastSavedText = self.text() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2903 | self.__deleteAllChangeMarkers() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2904 | |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2905 | # mark saved changes |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2906 | oldL = self.__oldText.splitlines() |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2907 | newL = self.__lastSavedText.splitlines() |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2908 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2909 | |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
2910 | for token, _, _, j1, j2 in matcher.get_opcodes(): |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2911 | if token in ["insert", "replace"]: |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2912 | for lineNo in range(j1, j2): |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2913 | self.markerAdd(lineNo, self.__changeMarkerSaved) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2914 | self.__hasChangeMarkers = True |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2915 | |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2916 | if self.__hasChangeMarkers: |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2917 | self.changeMarkersUpdated.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2918 | self.__markerMap.update() |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
2919 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2920 | def __deleteAllChangeMarkers(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2921 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2922 | Private slot to delete all change markers. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2923 | """ |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2924 | self.markerDeleteAll(self.__changeMarkerUnsaved) |
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2925 | self.markerDeleteAll(self.__changeMarkerSaved) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2926 | self.__hasChangeMarkers = False |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2927 | self.changeMarkersUpdated.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
2928 | self.__markerMap.update() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2929 | |
3325
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2930 | def getChangeLines(self): |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2931 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2932 | Public method to get the lines containing a change. |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2933 | |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2934 | @return list of lines containing a change (list of integer) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2935 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2936 | lines = [] |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2937 | line = -1 |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2938 | while True: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2939 | line = self.markerFindNext(line + 1, self.changeMarkersMask) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2940 | if line < 0: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2941 | break |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2942 | else: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2943 | lines.append(line) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2944 | return lines |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
2945 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2946 | def hasChangeMarkers(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2947 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2948 | Public method to determine, if this editor contains any change markers. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2949 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2950 | @return flag indicating the presence of change markers (boolean) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2951 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2952 | return self.__hasChangeMarkers |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2953 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2954 | def nextChange(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2955 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2956 | Public slot to handle the 'Next change' context menu action. |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2957 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2958 | line, index = self.getCursorPosition() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2959 | if line == self.lines() - 1: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2960 | line = 0 |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2961 | else: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2962 | line += 1 |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2963 | changeline = self.markerFindNext(line, self.changeMarkersMask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2964 | if changeline < 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2965 | # wrap around |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2966 | changeline = self.markerFindNext(0, self.changeMarkersMask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2967 | if changeline >= 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2968 | self.setCursorPosition(changeline, 0) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2969 | self.ensureLineVisible(changeline) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2970 | |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2971 | def previousChange(self): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2972 | """ |
6035
6cac9ce8ab15
Added an entry to delete all change markers to the marker margin context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6033
diff
changeset
|
2973 | Public slot to handle the 'Previous change' context menu action. |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2974 | """ |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2975 | line, index = self.getCursorPosition() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2976 | if line == 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2977 | line = self.lines() - 1 |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2978 | else: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2979 | line -= 1 |
2164
d67b14a3f884
Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2163
diff
changeset
|
2980 | changeline = self.markerFindPrevious(line, self.changeMarkersMask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2981 | if changeline < 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2982 | # wrap around |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2983 | changeline = self.markerFindPrevious( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2984 | self.lines() - 1, self.changeMarkersMask) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2985 | if changeline >= 0: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2986 | self.setCursorPosition(changeline, 0) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2987 | self.ensureLineVisible(changeline) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
2988 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2989 | ########################################################################### |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2990 | ## Flags handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
2991 | ########################################################################### |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2992 | |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2993 | def __processFlags(self): |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2994 | """ |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2995 | Private method to extract flags and process them. |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
2996 | |
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
2997 | @return list of change flags (list of string) |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2998 | """ |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
2999 | txt = self.text() |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3000 | flags = Utilities.extractFlags(txt) |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3001 | |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3002 | changedFlags = [] |
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3003 | |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3004 | # Flag 1: FileType |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3005 | if "FileType" in flags: |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3006 | oldFiletype = self.filetype |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3007 | if isinstance(flags["FileType"], str): |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3008 | self.filetype = flags["FileType"] |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3009 | self.filetypeByFlag = True |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3010 | if oldFiletype != self.filetype: |
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3011 | changedFlags.append("FileType") |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3012 | else: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3013 | if self.filetype != "" and self.filetypeByFlag: |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3014 | self.filetype = "" |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3015 | self.filetypeByFlag = False |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3016 | self.__bindName(txt.splitlines()[0]) |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3017 | changedFlags.append("FileType") |
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3018 | |
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3019 | return changedFlags |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3020 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3021 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3022 | ## File handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3023 | ########################################################################### |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3024 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3025 | def checkDirty(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3026 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3027 | 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
|
3028 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3029 | @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
|
3030 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3031 | if self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3032 | fn = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3033 | if fn is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3034 | fn = self.noName |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
3035 | res = E5MessageBox.okToClearData( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
3036 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
3037 | self.tr("File Modified"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
3038 | self.tr("<p>The file <b>{0}</b> has unsaved changes.</p>") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
3039 | .format(fn), |
549
fe99d46d56c8
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
548
diff
changeset
|
3040 | self.saveFile) |
fe99d46d56c8
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
548
diff
changeset
|
3041 | if res: |
fe99d46d56c8
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
548
diff
changeset
|
3042 | self.vm.setEditorName(self, self.fileName) |
fe99d46d56c8
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
548
diff
changeset
|
3043 | return res |
92
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 | return True |
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 | def revertToUnmodified(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3048 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3049 | 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
|
3050 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3051 | undo_ = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3052 | while self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3053 | if undo_: |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
3054 | # try undo first |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3055 | if self.isUndoAvailable(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3056 | self.undo() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3057 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3058 | undo_ = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3059 | else: |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
3060 | # try redo next |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3061 | if self.isRedoAvailable(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3062 | self.redo() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3063 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3064 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3065 | # Couldn't find the unmodified state |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3066 | |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3067 | def readFile(self, fn, createIt=False, encoding=""): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3068 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3069 | 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
|
3070 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3071 | @param fn filename to read from (string) |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3072 | @keyparam createIt flag indicating the creation of a new file, if the |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3073 | given one doesn't exist (boolean) |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3074 | @keyparam encoding encoding to be used to read the file (string) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3075 | (Note: this parameter overrides encoding detection) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3076 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3077 | QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3078 | |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3079 | self.__loadEditorConfig(fileName=fn) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3080 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3081 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3082 | if createIt and not os.path.exists(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3083 | f = open(fn, "w") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3084 | f.close() |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3085 | if encoding == "": |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3086 | encoding = self.__getEditorConfig("DefaultEncoding", |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3087 | nodefault=True) |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3088 | if encoding: |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3089 | txt, self.encoding = Utilities.readEncodedFileWithEncoding( |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3090 | fn, encoding) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3091 | else: |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
3092 | txt, self.encoding = Utilities.readEncodedFile(fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3093 | except (UnicodeDecodeError, IOError) as why: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3094 | QApplication.restoreOverrideCursor() |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
3095 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
3096 | self.vm, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
3097 | self.tr('Open File'), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
3098 | self.tr('<p>The file <b>{0}</b> could not be opened.</p>' |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
3099 | '<p>Reason: {1}</p>') |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3100 | .format(fn, str(why))) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3101 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3102 | raise |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3103 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3104 | modified = False |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3105 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3106 | self.setText(txt) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3107 | |
788
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3108 | # get eric specific flags |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3109 | self.__processFlags() |
5b1b59777460
Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
777
diff
changeset
|
3110 | |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3111 | # perform automatic EOL conversion |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3112 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3113 | self.__getEditorConfig("EOLMode", nodefault=True) or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3114 | Preferences.getEditor("AutomaticEOLConversion") |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3115 | ): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3116 | self.convertEols(self.eolMode()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3117 | else: |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3118 | fileEol = self.detectEolString(txt) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3119 | self.setEolModeByEolString(fileEol) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3120 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3121 | self.extractTasks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3122 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3123 | QApplication.restoreOverrideCursor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3124 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3125 | self.setModified(modified) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3126 | self.lastModified = QFileInfo(self.fileName).lastModified() |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3127 | |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3128 | def __convertTabs(self): |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3129 | """ |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3130 | Private slot to convert tabulators to spaces. |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3131 | """ |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3132 | if ( |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3133 | (not self.__getEditorConfig("TabForIndentation")) and |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3134 | Preferences.getEditor("ConvertTabsOnLoad") and |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3135 | not (self.lexer_ and |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3136 | self.lexer_.alwaysKeepTabs()) |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3137 | ): |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3138 | txt = self.text() |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3139 | txtExpanded = txt.expandtabs(self.__getEditorConfig("TabWidth")) |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3140 | if txtExpanded != txt: |
7506
7dc87ee87bf4
Editor: fixed an issue causing a crash.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7490
diff
changeset
|
3141 | self.beginUndoAction() |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3142 | self.setText(txt) |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3143 | self.endUndoAction() |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3144 | |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3145 | self.setModified(True) |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
3146 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3147 | def __removeTrailingWhitespace(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3148 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3149 | Private method to remove trailing whitespace. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3150 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3151 | 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
|
3152 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3153 | 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
|
3154 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3155 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3156 | self.replaceTarget("") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3157 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3158 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3159 | |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3160 | def writeFile(self, fn, backup=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3161 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3162 | 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
|
3163 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3164 | @param fn filename to write to (string) |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3165 | @param backup flag indicating to save a backup (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3166 | @return flag indicating success (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3167 | """ |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
3168 | config = self.__loadEditorConfigObject(fn) |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
3169 | |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3170 | eol = self.__getEditorConfig("EOLMode", nodefault=True, config=config) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3171 | if eol is not None: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3172 | self.convertEols(eol) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3173 | |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3174 | if self.__getEditorConfig("StripTrailingWhitespace", config=config): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3175 | self.__removeTrailingWhitespace() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3176 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3177 | txt = self.text() |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3178 | |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3179 | if self.__getEditorConfig("InsertFinalNewline", config=config): |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3180 | eol = self.getLineSeparator() |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3181 | if eol: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3182 | if len(txt) >= len(eol): |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3183 | if txt[-len(eol):] != eol: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3184 | txt += eol |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3185 | else: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3186 | txt += eol |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3187 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3188 | # create a backup file, if the option is set |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3189 | createBackup = backup and Preferences.getEditor("CreateBackupFile") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3190 | if createBackup: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3191 | if os.path.islink(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3192 | fn = os.path.realpath(fn) |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
3193 | bfn = '{0}~'.format(fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3194 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3195 | permissions = os.stat(fn).st_mode |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3196 | perms_valid = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3197 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3198 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3199 | perms_valid = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3200 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3201 | os.remove(bfn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3202 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3203 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3204 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3205 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3206 | os.rename(fn, bfn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3207 | except EnvironmentError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3208 | # if there was an error, ignore it |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3209 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3210 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3211 | # now write text to the file fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3212 | try: |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3213 | editorConfigEncoding = self.__getEditorConfig( |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
3214 | "DefaultEncoding", nodefault=True, config=config) |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3215 | self.encoding = Utilities.writeEncodedFile( |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3216 | fn, txt, self.encoding, forcedEncoding=editorConfigEncoding) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3217 | if createBackup and perms_valid: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3218 | os.chmod(fn, permissions) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3219 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3220 | except (IOError, Utilities.CodingError, UnicodeError) as why: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
3221 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
3222 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
3223 | self.tr('Save File'), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
3224 | self.tr('<p>The file <b>{0}</b> could not be saved.<br/>' |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
3225 | 'Reason: {1}</p>') |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
3226 | .format(fn, str(why))) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3227 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3228 | |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3229 | def __getSaveFileName(self, path=None): |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3230 | """ |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3231 | Private method to get the name of the file to be saved. |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3232 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3233 | @param path directory to save the file in (string) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3234 | @return file name (string) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3235 | """ |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3236 | # save to project, if a project is loaded |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3237 | if self.project.isOpen(): |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3238 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3239 | self.fileName and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3240 | self.project.startswithProjectPath(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3241 | ): |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3242 | path = os.path.dirname(self.fileName) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3243 | else: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3244 | path = self.project.getProjectPath() |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3245 | |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
3246 | if not path and self.fileName: |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3247 | path = os.path.dirname(self.fileName) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3248 | if not path: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3249 | path = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3250 | Preferences.getMultiProject("Workspace") or |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3251 | Utilities.getHomeDir() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3252 | ) |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3253 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3254 | from . import Lexers |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3255 | if self.fileName: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3256 | filterPattern = "(*{0})".format( |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3257 | os.path.splitext(self.fileName)[1]) |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
3258 | for fileFilter in Lexers.getSaveFileFiltersList(True): |
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
3259 | if filterPattern in fileFilter: |
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
3260 | defaultFilter = fileFilter |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3261 | break |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3262 | else: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3263 | defaultFilter = Preferences.getEditor("DefaultSaveFilter") |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3264 | else: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3265 | defaultFilter = Preferences.getEditor("DefaultSaveFilter") |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3266 | fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3267 | self, |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3268 | self.tr("Save File"), |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3269 | path, |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3270 | Lexers.getSaveFileFiltersList(True, True), |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3271 | defaultFilter, |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3272 | E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3273 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3274 | if fn: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3275 | if fn.endswith("."): |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3276 | fn = fn[:-1] |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3277 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3278 | ext = QFileInfo(fn).suffix() |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3279 | if not ext: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3280 | ex = selectedFilter.split("(*")[1].split(")")[0] |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3281 | if ex: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3282 | fn += ex |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3283 | if QFileInfo(fn).exists(): |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3284 | res = E5MessageBox.yesNo( |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3285 | self, |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3286 | self.tr("Save File"), |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3287 | self.tr("<p>The file <b>{0}</b> already exists." |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3288 | " Overwrite it?</p>").format(fn), |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3289 | icon=E5MessageBox.Warning) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3290 | if not res: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3291 | return "" |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3292 | fn = Utilities.toNativeSeparators(fn) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3293 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3294 | return fn |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3295 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3296 | def saveFileCopy(self, path=None): |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3297 | """ |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3298 | Public method to save a copy of the file. |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3299 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3300 | @param path directory to save the file in (string) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3301 | @return flag indicating success (boolean) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3302 | """ |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3303 | fn = self.__getSaveFileName(path) |
4411
15556f6b4b0f
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4405
diff
changeset
|
3304 | if not fn: |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3305 | return False |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3306 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3307 | res = self.writeFile(fn) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3308 | if res: |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3309 | # save to project, if a project is loaded |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3310 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3311 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3312 | self.project.startswithProjectPath(fn) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3313 | ): |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3314 | self.project.appendFile(fn) |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3315 | |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3316 | return res |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3317 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3318 | def saveFile(self, saveas=False, path=None): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3319 | """ |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3320 | Public method to save the text to a file. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3321 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3322 | @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
|
3323 | @param path directory to save the file in (string) |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
3324 | @return flag indicating success (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3325 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3326 | if not saveas and not self.isModified(): |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
3327 | return False # do nothing if text wasn't changed |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3328 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3329 | newName = None |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
3330 | if saveas or self.fileName == "": |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3331 | saveas = True |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
3332 | |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3333 | fn = self.__getSaveFileName(path) |
4411
15556f6b4b0f
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4405
diff
changeset
|
3334 | if not fn: |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3335 | return False |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
3336 | |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3337 | newName = fn |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
3338 | |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
3339 | # save to project, if a project is loaded |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3340 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3341 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3342 | self.project.startswithProjectPath(fn) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3343 | ): |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3344 | editorConfigEol = self.__getEditorConfig( |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3345 | "EOLMode", nodefault=True, |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3346 | config=self.__loadEditorConfigObject(fn)) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3347 | if editorConfigEol is not None: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3348 | self.setEolMode(editorConfigEol) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3349 | else: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
3350 | self.setEolModeByEolString(self.project.getEolString()) |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
3351 | self.convertEols(self.eolMode()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3352 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3353 | fn = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3354 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3355 | self.__loadEditorConfig(fn) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3356 | self.editorAboutToBeSaved.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3357 | if self.writeFile(fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3358 | if saveas: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3359 | self.__clearBreakpoints(self.fileName) |
7306 | 3360 | self.__setFileName(fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3361 | self.setModified(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3362 | self.setReadOnly(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3363 | self.setWindowTitle(self.fileName) |
789
c190cd71b097
Fixed an issue introduced by the latest change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
788
diff
changeset
|
3364 | # get eric specific flags |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3365 | changedFlags = self.__processFlags() |
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
3366 | if not self.__lexerReset and "FileType" in changedFlags: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3367 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3368 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3369 | if saveas: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3370 | self.isResourcesFile = self.fileName.endswith(".qrc") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3371 | self.__initContextMenu() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3372 | self.editorRenamed.emit(self.fileName) |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
3373 | |
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
3374 | # save to project, if a project is loaded |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3375 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3376 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3377 | self.project.startswithProjectPath(fn) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3378 | ): |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
3379 | self.project.appendFile(fn) |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
3380 | self.addedToProject() |
3152
0845347fe512
Fixed an issue setting syntax style in a 'save as' operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3149
diff
changeset
|
3381 | |
0845347fe512
Fixed an issue setting syntax style in a 'save as' operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3149
diff
changeset
|
3382 | self.setLanguage(self.fileName) |
825
9cdec3c5bc07
Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
812
diff
changeset
|
3383 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3384 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3385 | if newName is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3386 | self.vm.addToRecentList(newName) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3387 | self.editorSaved.emit(self.fileName) |
3579
eccd12461319
BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3576
diff
changeset
|
3388 | self.checkSyntax() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3389 | self.extractTasks() |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
3390 | self.__resetOnlineChangeTraceInfo() |
4405
c110bcfaad81
Fixed an issue in the editor causing the encodings menu not being synchronized after a save operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4402
diff
changeset
|
3391 | self.__checkEncoding() |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
3392 | return True |
92
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.lastModified = QFileInfo(fn).lastModified() |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
3395 | return False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3396 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3397 | def saveFileAs(self, path=None, toProject=False): |
92
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 | 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
|
3400 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3401 | @param path directory to save the file in (string) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3402 | @keyparam toProject flag indicating a save to project operation |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3403 | (boolean) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3404 | @return tuple of two values (boolean, string) giving a success |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3405 | indicator and the name of the saved file |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3406 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3407 | return self.saveFile(True, path) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3408 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3409 | def handleRenamed(self, fn): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3410 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3411 | Public slot to handle the editorRenamed signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3412 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3413 | @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
|
3414 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3415 | self.__clearBreakpoints(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3416 | |
7306 | 3417 | self.__setFileName(fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3418 | self.setWindowTitle(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3419 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3420 | self.__loadEditorConfig() |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
3421 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3422 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3423 | self.setLanguage(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3424 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3425 | self.lastModified = QFileInfo(self.fileName).lastModified() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3426 | self.vm.setEditorName(self, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3427 | self.__updateReadOnly(True) |
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 | def fileRenamed(self, fn): |
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 | Public slot to handle the editorRenamed signal. |
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 | @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
|
3434 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3435 | self.handleRenamed(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3436 | if not self.inFileRenamed: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3437 | self.inFileRenamed = True |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
3438 | self.editorRenamed.emit(self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3439 | self.inFileRenamed = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3440 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3441 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3442 | ## Utility methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3443 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3444 | |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3445 | def ensureVisible(self, line, expand=False): |
92
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 | 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
|
3448 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3449 | @param line line number to make visible |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3450 | @type int |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3451 | @keyparam expand flag indicating to expand all folds |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3452 | @type bool |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3453 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3454 | self.ensureLineVisible(line - 1) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3455 | if expand: |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3456 | self.SendScintilla(QsciScintilla.SCI_FOLDCHILDREN, line - 1, |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3457 | QsciScintilla.SC_FOLDACTION_EXPAND) |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3458 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3459 | def ensureVisibleTop(self, line, expand=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3460 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3461 | 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
|
3462 | of the editor. |
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 line line number to make visible |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3465 | @type int |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3466 | @keyparam expand flag indicating to expand all folds |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3467 | @type bool |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3468 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3469 | self.ensureVisible(line) |
1897
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
3470 | self.setFirstVisibleLine(line - 1) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3471 | self.ensureCursorVisible() |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3472 | if expand: |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3473 | self.SendScintilla(QsciScintilla.SCI_FOLDCHILDREN, line - 1, |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
3474 | QsciScintilla.SC_FOLDACTION_EXPAND) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3475 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3476 | def __marginClicked(self, margin, line, modifiers): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3477 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3478 | Private slot to handle the marginClicked signal. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3479 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3480 | @param margin id of the clicked margin (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3481 | @param line line number of the click (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3482 | @param modifiers keyboard modifiers (Qt.KeyboardModifiers) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3483 | """ |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
3484 | if margin == self.__bmMargin: |
6735
31e263d49c04
Fixed some code style issues detected by the updated style checker (over-indented lines).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6718
diff
changeset
|
3485 | self.toggleBookmark(line + 1) |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
3486 | elif margin == self.__bpMargin: |
6735
31e263d49c04
Fixed some code style issues detected by the updated style checker (over-indented lines).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6718
diff
changeset
|
3487 | self.__toggleBreakpoint(line + 1) |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
3488 | elif margin == self.__indicMargin: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
3489 | if self.markersAtLine(line) & (1 << self.syntaxerror): |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
3490 | self.__showSyntaxError(line) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
3491 | elif self.markersAtLine(line) & (1 << self.warning): |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
3492 | self.__showWarning(line) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3493 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3494 | def handleMonospacedEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3495 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
3496 | Public slot to handle the Use Monospaced Font context menu entry. |
92
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.menuActs["MonospacedFont"].isChecked(): |
3087
fdbce259929f
Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3069
diff
changeset
|
3499 | if not self.lexer_: |
fdbce259929f
Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3069
diff
changeset
|
3500 | self.setMonospaced(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3501 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3502 | if self.lexer_: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3503 | self.lexer_.readSettings( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3504 | Preferences.Prefs.settings, "Scintilla") |
6858
9d962e654978
Corrected the SubstyledLexer.hasSubStyle() method to SubstyledLexer.hasSubstyle() to be consistent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6845
diff
changeset
|
3505 | if self.lexer_.hasSubstyles(): |
6845
4680adb641e0
Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6843
diff
changeset
|
3506 | self.lexer_.readSubstyles(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3507 | self.lexer_.initProperties() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3508 | self.setMonospaced(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3509 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3510 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3511 | def getWordBoundaries(self, line, index, useWordChars=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3512 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3513 | Public 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
|
3514 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3515 | @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
|
3516 | @param index position to look at (int) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3517 | @keyparam useWordChars flag indicating to use the wordCharacters |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3518 | method (boolean) |
2213
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3519 | @return tuple with start and end indexes of the word at the position |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3520 | (integer, integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3521 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3522 | text = self.text(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3523 | if self.caseSensitive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3524 | cs = Qt.CaseSensitive |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3525 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3526 | cs = Qt.CaseInsensitive |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3527 | wc = self.wordCharacters() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3528 | if wc is None or not useWordChars: |
6247
5c677a7f7d51
Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6210
diff
changeset
|
3529 | regExp = QRegExp(r'[^\w_]', cs) |
5c677a7f7d51
Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6210
diff
changeset
|
3530 | else: |
5c677a7f7d51
Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6210
diff
changeset
|
3531 | wc = re.sub(r'\w', "", wc) |
5c677a7f7d51
Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6210
diff
changeset
|
3532 | regExp = QRegExp(r'[^\w{0}]'.format(re.escape(wc)), cs) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3533 | start = regExp.lastIndexIn(text, index) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3534 | end = regExp.indexIn(text, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3535 | if start == end + 1 and index > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3536 | # we are on a word boundary, try again |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3537 | start = regExp.lastIndexIn(text, index - 1) + 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3538 | if start == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3539 | start = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3540 | if end == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3541 | end = len(text) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3542 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3543 | return (start, end) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3544 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3545 | def getWord(self, line, index, direction=0, useWordChars=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3546 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3547 | 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
|
3548 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3549 | @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
|
3550 | @param index position to look at (int) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3551 | @param direction direction to look in (0 = whole word, 1 = left, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3552 | 2 = right) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3553 | @keyparam useWordChars flag indicating to use the wordCharacters |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3554 | method (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3555 | @return the word at that position (string) |
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 | start, end = self.getWordBoundaries(line, index, useWordChars) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3558 | if direction == 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3559 | end = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3560 | elif direction == 2: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3561 | start = index |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3562 | if end > start: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3563 | text = self.text(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3564 | word = text[start:end] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3565 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3566 | word = '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3567 | return word |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3568 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3569 | def getWordLeft(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3570 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3571 | 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
|
3572 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3573 | @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
|
3574 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3575 | @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
|
3576 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3577 | return self.getWord(line, index, 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3578 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3579 | def getWordRight(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3580 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3581 | 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
|
3582 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3583 | @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
|
3584 | @param index position to look at (int) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3585 | @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
|
3586 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3587 | return self.getWord(line, index, 2) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3588 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3589 | def getCurrentWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3590 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3591 | 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
|
3592 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3593 | @return the word at that current position (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3594 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3595 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3596 | return self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3597 | |
2213
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3598 | def getCurrentWordBoundaries(self): |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3599 | """ |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3600 | Public method to get the word boundaries at the current position. |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3601 | |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3602 | @return tuple with start and end indexes of the current word |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3603 | (integer, integer) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3604 | """ |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3605 | line, index = self.getCursorPosition() |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3606 | return self.getWordBoundaries(line, index) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
3607 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3608 | def selectWord(self, line, index): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3609 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3610 | 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
|
3611 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3612 | @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
|
3613 | @param index position to look at (int) |
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 | start, end = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3616 | self.setSelection(line, start, line, end) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3617 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3618 | def selectCurrentWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3619 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3620 | Public method to select the current word. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3621 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3622 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3623 | self.selectWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3624 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3625 | def __getCharacter(self, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3626 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3627 | 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
|
3628 | in the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3629 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3630 | @param pos position to get character at (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3631 | @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
|
3632 | the next position (i.e. pos - 1) |
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 | if pos <= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3635 | return "", pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3636 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3637 | pos = self.positionBefore(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3638 | ch = self.charAt(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3639 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3640 | # 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
|
3641 | if ch == '\n' or ch == '\r': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3642 | return "", pos |
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 | return ch, pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3645 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3646 | def getSearchText(self, selectionOnly=False): |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3647 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3648 | Public method to determine the selection or the current word for the |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3649 | next search operation. |
92
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 | @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
|
3652 | returned (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3653 | @return selection or current word (string) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3654 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3655 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3656 | text = self.selectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3657 | if '\r' in text or '\n' in text: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3658 | # 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
|
3659 | # unlikely to be the expression to search for |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3660 | return '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3661 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3662 | return text |
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 | if not selectionOnly: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3665 | # 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
|
3666 | return self.getCurrentWord() |
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 | return '' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3669 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3670 | def setSearchIndicator(self, startPos, indicLength): |
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 | 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
|
3673 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3674 | @param startPos start position of the indicator (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3675 | @param indicLength length of the indicator (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3676 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3677 | self.setIndicatorRange(self.searchIndicator, startPos, indicLength) |
4304
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3678 | line = self.lineIndexFromPosition(startPos)[0] |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3679 | if line not in self.__searchIndicatorLines: |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3680 | self.__searchIndicatorLines.append(line) |
92
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 clearSearchIndicators(self): |
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 clear all search indicators. |
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 | self.clearAllIndicators(self.searchIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3687 | self.__markedText = "" |
4304
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3688 | self.__searchIndicatorLines = [] |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3689 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3690 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3691 | def __markOccurrences(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3692 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3693 | 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
|
3694 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3695 | word = self.getCurrentWord() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3696 | if not word: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3697 | self.clearSearchIndicators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3698 | return |
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 | if self.__markedText == word: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3701 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3702 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3703 | self.clearSearchIndicators() |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3704 | ok = self.findFirstTarget(word, False, self.caseSensitive(), True, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3705 | 0, 0) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3706 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3707 | tgtPos, tgtLen = self.getFoundTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3708 | self.setSearchIndicator(tgtPos, tgtLen) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3709 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3710 | self.__markedText = word |
4304
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3711 | self.__markerMap.update() |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3712 | |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3713 | def getSearchIndicatorLines(self): |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3714 | """ |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3715 | Public method to get the lines containing a search indicator. |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3716 | |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3717 | @return list of lines containing a search indicator (list of integer) |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3718 | """ |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3719 | return self.__searchIndicatorLines[:] |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3720 | |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3721 | def updateMarkerMap(self): |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3722 | """ |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3723 | Public method to initiate an update of the marker map. |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3724 | """ |
f85965649066
Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4302
diff
changeset
|
3725 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3726 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3727 | ########################################################################### |
7525
6d1f954947bc
LexerPygments: fixed an issue loading styles and added some Pygments token types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7506
diff
changeset
|
3728 | ## Highlighting marker handling methods below |
6932
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3729 | ########################################################################### |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3730 | |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3731 | def setHighlight(self, startLine, startIndex, endLine, endIndex): |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3732 | """ |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3733 | Public method to set a text highlight. |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3734 | |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3735 | @param startLine line of the highlight start |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3736 | @type int |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3737 | @param startIndex index of the highlight start |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3738 | @type int |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3739 | @param endLine line of the highlight end |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3740 | @type int |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3741 | @param endIndex index of the highlight end |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3742 | @type int |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3743 | """ |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3744 | self.setIndicator(self.highlightIndicator, startLine, startIndex, |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3745 | endLine, endIndex) |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3746 | |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3747 | def clearAllHighlights(self): |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3748 | """ |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3749 | Public method to clear all highlights. |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3750 | """ |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3751 | self.clearAllIndicators(self.highlightIndicator) |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3752 | |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3753 | def clearHighlight(self, startLine, startIndex, endLine, endIndex): |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3754 | """ |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3755 | Public method to clear a text highlight. |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3756 | |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3757 | @param startLine line of the highlight start |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3758 | @type int |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3759 | @param startIndex index of the highlight start |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3760 | @type int |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3761 | @param endLine line of the highlight end |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3762 | @type int |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3763 | @param endIndex index of the highlight end |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3764 | @type int |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3765 | """ |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3766 | self.clearIndicator(self.highlightIndicator, startLine, startIndex, |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3767 | endLine, endIndex) |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3768 | |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
3769 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3770 | ## Comment handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3771 | ########################################################################### |
2493
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3772 | |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3773 | def __isCommentedLine(self, line, commentStr): |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3774 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3775 | Private method to check, if the given line is a comment line as |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3776 | produced by the configured comment rules. |
2493
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3777 | |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3778 | @param line text of the line to check (string) |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3779 | @param commentStr comment string to check against (string) |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3780 | @return flag indicating a commented line (boolean) |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3781 | """ |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3782 | if Preferences.getEditor("CommentColumn0"): |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3783 | return line.startswith(commentStr) |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3784 | else: |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3785 | return line.strip().startswith(commentStr) |
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3786 | |
1500
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3787 | def toggleCommentBlock(self): |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3788 | """ |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3789 | Public slot to toggle the comment of a block. |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3790 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3791 | If the line of the cursor or the selection is not commented, it will |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3792 | be commented. If it is commented, the comment block will be removed. |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3793 | The later works independent of the current selection. |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3794 | """ |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3795 | if self.lexer_ is None or not self.lexer_.canBlockComment(): |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3796 | return |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3797 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3798 | commentStr = self.lexer_.commentStr() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3799 | line, index = self.getCursorPosition() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3800 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3801 | # check if line starts with our comment string (i.e. was commented |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3802 | # by our comment...() slots |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3803 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3804 | self.hasSelectedText() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3805 | self.__isCommentedLine(self.text(self.getSelection()[0]), |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3806 | commentStr) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3807 | ): |
2490
3d011f457ddd
Extended the logic of the 'Toggle Comment Block' action to consider the current selection first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2424
diff
changeset
|
3808 | self.uncommentLineOrSelection() |
2493
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3809 | elif not self.__isCommentedLine(self.text(line), commentStr): |
1500
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3810 | # it doesn't, so comment the line or selection |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3811 | self.commentLineOrSelection() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3812 | else: |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3813 | # determine the start of the comment block |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3814 | begline = line |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3815 | while ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3816 | begline > 0 and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3817 | self.__isCommentedLine(self.text(begline - 1), commentStr) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3818 | ): |
1588
dccffd13be8d
Did some PEP-8 related corrections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1566
diff
changeset
|
3819 | begline -= 1 |
1500
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3820 | # determine the end of the comment block |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3821 | endline = line |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3822 | lines = self.lines() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3823 | while ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3824 | endline < lines and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3825 | self.__isCommentedLine(self.text(endline + 1), commentStr) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
3826 | ): |
1588
dccffd13be8d
Did some PEP-8 related corrections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1566
diff
changeset
|
3827 | endline += 1 |
1500
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3828 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3829 | self.setSelection(begline, 0, endline, self.lineLength(endline)) |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3830 | self.uncommentLineOrSelection() |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3831 | |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3832 | # reset the cursor |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3833 | self.setCursorPosition(line, index - len(commentStr)) |
6ce6deb421cf
Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1491
diff
changeset
|
3834 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3835 | def commentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3836 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3837 | Public slot to comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3838 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3839 | 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
|
3840 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3841 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3842 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3843 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3844 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3845 | self.insertAt(self.lexer_.commentStr(), line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3846 | else: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3847 | self.insertAt(self.lexer_.commentStr(), line, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3848 | self.indentation(line)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3849 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3850 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3851 | def uncommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3852 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3853 | Public slot to uncomment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3854 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3855 | 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
|
3856 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3857 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3858 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3859 | line, index = self.getCursorPosition() |
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 | # 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
|
3862 | # by our comment...() slots |
2493
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3863 | if not self.__isCommentedLine(self.text(line), commentStr): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3864 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3865 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3866 | # now remove the comment string |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3867 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3868 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3869 | self.setSelection(line, 0, line, len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3870 | else: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3871 | self.setSelection(line, self.indentation(line), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3872 | line, self.indentation(line) + len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3873 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3874 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3875 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3876 | def commentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3877 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3878 | Public slot to comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3879 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3880 | if self.lexer_ is None or not self.lexer_.canBlockComment(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3881 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3882 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3883 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3884 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3885 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3886 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3887 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3888 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3889 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3890 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3891 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3892 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3893 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3894 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3895 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3896 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3897 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3898 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3899 | self.insertAt(commentStr, line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3900 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3901 | self.insertAt(commentStr, line, self.indentation(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3902 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3903 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3904 | self.setSelection(lineFrom, 0, endLine + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3905 | self.endUndoAction() |
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 | def uncommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3908 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3909 | Public slot to uncomment the current selection. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3910 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3911 | 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
|
3912 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3913 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3914 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3915 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3916 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3917 | commentStr = self.lexer_.commentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3918 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3919 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3920 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3921 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3922 | endLine = lineTo - 1 |
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 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3925 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3926 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3927 | # iterate over the lines |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
3928 | for line in range(lineFrom, endLine + 1): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3929 | # 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
|
3930 | # by our comment...() slots |
2493
476f6016114d
Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2490
diff
changeset
|
3931 | if not self.__isCommentedLine(self.text(line), commentStr): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3932 | continue |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3933 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3934 | if Preferences.getEditor("CommentColumn0"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3935 | self.setSelection(line, 0, line, len(commentStr)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3936 | else: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3937 | self.setSelection(line, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3938 | self.indentation(line), |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3939 | line, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
3940 | self.indentation(line) + len(commentStr)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3941 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3942 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3943 | # adjust selection start |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3944 | if line == lineFrom: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3945 | indexFrom -= len(commentStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3946 | if indexFrom < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3947 | indexFrom = 0 |
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 | # adjust selection end |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3950 | if line == lineTo: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3951 | indexTo -= len(commentStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3952 | if indexTo < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3953 | indexTo = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3954 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3955 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3956 | self.setSelection(lineFrom, indexFrom, lineTo, indexTo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3957 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3958 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3959 | def commentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3960 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3961 | 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
|
3962 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3963 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3964 | self.commentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3965 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3966 | self.commentLine() |
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 | def uncommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3969 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3970 | 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
|
3971 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3972 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3973 | self.uncommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3974 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3975 | self.uncommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3976 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3977 | def streamCommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3978 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3979 | Public slot to stream comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3980 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3981 | 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
|
3982 | return |
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 | commentStr = self.lexer_.streamCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3985 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3986 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3987 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3988 | self.insertAt(commentStr['end'], line, self.lineLength(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3989 | self.insertAt(commentStr['start'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3990 | self.endUndoAction() |
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 streamCommentSelection(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 | Public slot to comment the current selection. |
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 | 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
|
3997 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3998 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
3999 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4000 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4001 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4002 | commentStr = self.lexer_.streamCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4003 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4004 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4005 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4006 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4007 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4008 | endIndex = self.lineLength(endLine) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4009 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4010 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4011 | endIndex = indexTo |
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 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4014 | self.insertAt(commentStr['end'], endLine, endIndex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4015 | self.insertAt(commentStr['start'], lineFrom, indexFrom) |
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 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4018 | if indexTo > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4019 | indexTo += len(commentStr['end']) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4020 | if lineFrom == endLine: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4021 | indexTo += len(commentStr['start']) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4022 | self.setSelection(lineFrom, indexFrom, lineTo, indexTo) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4023 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4024 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4025 | def streamCommentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4026 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4027 | Public 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
|
4028 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4029 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4030 | self.streamCommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4031 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4032 | self.streamCommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4033 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4034 | def boxCommentLine(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4035 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4036 | Public slot to box comment the current line. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4037 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4038 | 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
|
4039 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4040 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4041 | commentStr = self.lexer_.boxCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4042 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4043 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4044 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4045 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4046 | self.insertAt(eol, line, self.lineLength(line)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4047 | self.insertAt(commentStr['end'], line + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4048 | self.insertAt(commentStr['middle'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4049 | self.insertAt(eol, line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4050 | self.insertAt(commentStr['start'], line, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4051 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4052 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4053 | def boxCommentSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4054 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4055 | Public slot to box comment the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4056 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4057 | 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
|
4058 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4059 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4060 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4061 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4062 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4063 | commentStr = self.lexer_.boxCommentStr() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4064 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4065 | # get the selection boundaries |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4066 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4067 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4068 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4069 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4070 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4071 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4072 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4073 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4074 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4075 | self.insertAt(commentStr['middle'], line, 0) |
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 | # 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
|
4078 | eol = self.getLineSeparator() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4079 | self.insertAt(eol, endLine, self.lineLength(endLine)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4080 | self.insertAt(commentStr['end'], endLine + 1, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4081 | self.insertAt(eol, lineFrom, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4082 | self.insertAt(commentStr['start'], lineFrom, 0) |
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 | # change the selection accordingly |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4085 | self.setSelection(lineFrom, 0, endLine + 3, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4086 | self.endUndoAction() |
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 boxCommentLineOrSelection(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 | 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
|
4091 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4092 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4093 | self.boxCommentSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4094 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4095 | self.boxCommentLine() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4096 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4097 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4098 | ## Indentation handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4099 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4100 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4101 | def __indentLine(self, indent=True): |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4102 | """ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4103 | Private method to indent or unindent the current line. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4104 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4105 | @param indent flag indicating an indent operation (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4106 | <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
|
4107 | Otherwise the current line is unindented. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4108 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4109 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4110 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4111 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4112 | self.indent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4113 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4114 | self.unindent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4115 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4116 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4117 | self.setCursorPosition(line, index + self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4118 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4119 | self.setCursorPosition(line, index - self.indentationWidth()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4120 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4121 | def __indentSelection(self, indent=True): |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4122 | """ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4123 | Private method to indent or unindent the current selection. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4124 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4125 | @param indent flag indicating an indent operation (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4126 | <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
|
4127 | Otherwise the current line is unindented. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4128 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4129 | if not self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4130 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4131 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4132 | # get the selection |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4133 | lineFrom, indexFrom, lineTo, indexTo = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4134 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4135 | if indexTo == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4136 | endLine = lineTo - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4137 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4138 | endLine = lineTo |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4139 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4140 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4141 | # iterate over the lines |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4142 | for line in range(lineFrom, endLine + 1): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4143 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4144 | self.indent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4145 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4146 | self.unindent(line) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4147 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4148 | if indent: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4149 | if indexTo == 0: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4150 | self.setSelection( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4151 | lineFrom, indexFrom + self.indentationWidth(), |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4152 | lineTo, 0) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4153 | else: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4154 | self.setSelection( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4155 | lineFrom, indexFrom + self.indentationWidth(), |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4156 | lineTo, indexTo + self.indentationWidth()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4157 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4158 | indexStart = indexFrom - self.indentationWidth() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4159 | if indexStart < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4160 | indexStart = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4161 | indexEnd = indexTo - self.indentationWidth() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4162 | if indexEnd < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4163 | indexEnd = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4164 | self.setSelection(lineFrom, indexStart, lineTo, indexEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4165 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4166 | def indentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4167 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
4168 | Public slot to indent the current line or current selection. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4169 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4170 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4171 | self.__indentSelection(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4172 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4173 | self.__indentLine(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4174 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4175 | def unindentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4176 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4177 | 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
|
4178 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4179 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4180 | self.__indentSelection(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4181 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4182 | self.__indentLine(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4183 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4184 | def smartIndentLineOrSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4185 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4186 | Public slot to indent current line smartly. |
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 | if self.hasSelectedText(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4189 | if self.lexer_ and self.lexer_.hasSmartIndent(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4190 | self.lexer_.smartIndentSelection(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4191 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4192 | self.__indentSelection(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4193 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4194 | if self.lexer_ and self.lexer_.hasSmartIndent(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4195 | self.lexer_.smartIndentLine(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4196 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4197 | self.__indentLine(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4198 | |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4199 | def gotoLine(self, line, pos=1, firstVisible=False, expand=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4200 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4201 | 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
|
4202 | |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4203 | @param line line number to go to |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4204 | @type int |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4205 | @keyparam pos position in line to go to |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4206 | @type int |
1897
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
4207 | @keyparam firstVisible flag indicating to make the line the first |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4208 | visible line |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4209 | @type bool |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4210 | @keyparam expand flag indicating to expand all folds |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4211 | @type bool |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
4212 | """ |
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
4213 | self.setCursorPosition(line - 1, pos - 1) |
1897
4c89af5a756f
Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1831
diff
changeset
|
4214 | if firstVisible: |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4215 | self.ensureVisibleTop(line, expand) |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4216 | else: |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
4217 | self.ensureVisible(line, expand) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4218 | |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4219 | def __textChanged(self): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4220 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4221 | Private slot to handle a change of the editor text. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4222 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4223 | This slot defers the handling to the next time the event loop |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4224 | is run in order to ensure, that cursor position has been updated |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4225 | by the underlying Scintilla editor. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4226 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4227 | QTimer.singleShot(0, self.__saveLastEditPosition) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4228 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4229 | def __saveLastEditPosition(self): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4230 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4231 | Private slot to record the last edit position. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4232 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4233 | self.__lastEditPosition = self.getCursorPosition() |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4234 | self.lastEditPositionAvailable.emit() |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4235 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4236 | def isLastEditPositionAvailable(self): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4237 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4238 | Public method to check, if a last edit position is available. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4239 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4240 | @return flag indicating availability (boolean) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4241 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4242 | return self.__lastEditPosition is not None |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4243 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4244 | def gotoLastEditPosition(self): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4245 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4246 | Public method to move the cursor to the last edit position. |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4247 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4248 | self.setCursorPosition(*self.__lastEditPosition) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4249 | self.ensureVisible(self.__lastEditPosition[0]) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4250 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4251 | def gotoMethodClass(self, goUp=False): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4252 | """ |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4253 | Public method to go to the next Python method or class definition. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
4254 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
4255 | @param goUp flag indicating the move direction (boolean) |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4256 | """ |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
4257 | if self.isPyFile() or self.isRubyFile(): |
1169
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4258 | lineNo = self.getCursorPosition()[0] |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4259 | line = self.text(lineNo) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4260 | if line.strip().startswith(("class ", "def ", "module ")): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4261 | if goUp: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4262 | lineNo -= 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4263 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4264 | lineNo += 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4265 | while True: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4266 | if goUp and lineNo < 0: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4267 | self.setCursorPosition(0, 0) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4268 | self.ensureVisible(0) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4269 | return |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4270 | elif not goUp and lineNo == self.lines(): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4271 | lineNo = self.lines() - 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4272 | self.setCursorPosition(lineNo, self.lineLength(lineNo)) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4273 | self.ensureVisible(lineNo) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4274 | return |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4275 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4276 | line = self.text(lineNo) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4277 | if line.strip().startswith(("class ", "def ", "module ")): |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4278 | # try 'def ' first because it occurs more often |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4279 | first = line.find("def ") |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4280 | if first > -1: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4281 | first += 4 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4282 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4283 | first = line.find("class ") |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4284 | if first > -1: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4285 | first += 6 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4286 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4287 | first = line.find("module ") + 7 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4288 | match = re.search("[:(]", line) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4289 | if match: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4290 | end = match.start() |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4291 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4292 | end = self.lineLength(lineNo) - 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4293 | self.setSelection(lineNo, first, lineNo, end) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4294 | self.ensureVisible(lineNo) |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4295 | return |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4296 | |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4297 | if goUp: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4298 | lineNo -= 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4299 | else: |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4300 | lineNo += 1 |
36a3bb21e6e6
Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
4301 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4302 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4303 | ## Setup methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4304 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4305 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4306 | def readSettings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4307 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4308 | Public slot to read the settings into our lexer. |
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 | # read the lexer settings and reinit the properties |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4311 | if self.lexer_ is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4312 | self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla") |
6858
9d962e654978
Corrected the SubstyledLexer.hasSubStyle() method to SubstyledLexer.hasSubstyle() to be consistent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6845
diff
changeset
|
4313 | if self.lexer_.hasSubstyles(): |
6845
4680adb641e0
Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6843
diff
changeset
|
4314 | self.lexer_.readSubstyles(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4315 | self.lexer_.initProperties() |
1566
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
4316 | |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
4317 | self.lexer_.setDefaultColor(self.lexer_.color(0)) |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
4318 | self.lexer_.setDefaultPaper(self.lexer_.paper(0)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4319 | |
4227
8a39c8b968f4
Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4201
diff
changeset
|
4320 | self.__bindLexer(self.fileName) |
8a39c8b968f4
Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4201
diff
changeset
|
4321 | self.recolor() |
8a39c8b968f4
Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4201
diff
changeset
|
4322 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4323 | # read the typing completer settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4324 | if self.completer is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4325 | self.completer.readSettings() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4326 | |
5733
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4327 | # set the line marker colours or pixmap |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4328 | if Preferences.getEditor("LineMarkersBackground"): |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4329 | self.markerDefine(QsciScintilla.Background, self.currentline) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4330 | self.markerDefine(QsciScintilla.Background, self.errorline) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4331 | self.__setLineMarkerColours() |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4332 | else: |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4333 | self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
4334 | UI.PixmapCache.getPixmap("currentLineMarker"), |
5733
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4335 | self.currentline) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4336 | self.markerDefine( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
4337 | UI.PixmapCache.getPixmap("errorLineMarker"), |
5733
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4338 | self.errorline) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4339 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4340 | # set the text display |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4341 | self.__setTextDisplay() |
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 | # set margin 0 and 2 configuration |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4344 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4345 | |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
4346 | # set the auto-completion function |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
4347 | self.__acCache.setSize( |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
4348 | Preferences.getEditor("AutoCompletionCacheSize")) |
5909
21d90a3abc7c
Added a timeout configuration value to the completions cache after which completions will be removed from the cache.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5907
diff
changeset
|
4349 | self.__acCache.setMaximumCacheTime( |
21d90a3abc7c
Added a timeout configuration value to the completions cache after which completions will be removed from the cache.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5907
diff
changeset
|
4350 | Preferences.getEditor("AutoCompletionCacheTime")) |
6755
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
4351 | self.__acCacheEnabled = Preferences.getEditor( |
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
4352 | "AutoCompletionCacheEnabled") |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
4353 | acTimeout = Preferences.getEditor("AutoCompletionTimeout") |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
4354 | if acTimeout != self.__acTimer.interval: |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
4355 | self.__acTimer.setInterval(acTimeout) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4356 | self.__setAutoCompletion() |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
4357 | |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
4358 | # set the calltips function |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4359 | self.__setCallTips() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4360 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4361 | # set the autosave flags |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4362 | self.autosaveEnabled = Preferences.getEditor("AutosaveInterval") > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4363 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4364 | if Preferences.getEditor("MiniContextMenu") != self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4365 | # regenerate context menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4366 | self.__initContextMenu() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4367 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4368 | # set checked context menu items |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4369 | self.menuActs["AutoCompletionEnable"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4370 | self.autoCompletionThreshold() != -1) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4371 | self.menuActs["MonospacedFont"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4372 | self.useMonospaced) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4373 | self.menuActs["AutosaveEnable"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4374 | self.autosaveEnabled and not self.autosaveManuallyDisabled) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4375 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4376 | # regenerate the margins context menu(s) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4377 | self.__initContextMenuMargins() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4378 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4379 | if Preferences.getEditor("MarkOccurrencesEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4380 | self.__markOccurrencesTimer.setInterval( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4381 | Preferences.getEditor("MarkOccurrencesTimeout")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4382 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4383 | self.__markOccurrencesTimer.stop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4384 | self.clearSearchIndicators() |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
4385 | |
1353
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4386 | if Preferences.getEditor("OnlineSyntaxCheck"): |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4387 | self.__onlineSyntaxCheckTimer.setInterval( |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4388 | Preferences.getEditor("OnlineSyntaxCheckInterval") * 1000) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4389 | else: |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4390 | self.__onlineSyntaxCheckTimer.stop() |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
4391 | |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4392 | if Preferences.getEditor("OnlineChangeTrace"): |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4393 | self.__onlineChangeTraceTimer.setInterval( |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4394 | Preferences.getEditor("OnlineChangeTraceInterval")) |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4395 | else: |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4396 | self.__onlineChangeTraceTimer.stop() |
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4397 | self.__deleteAllChangeMarkers() |
2165
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
4398 | self.markerDefine(self.__createChangeMarkerPixmap( |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
4399 | "OnlineChangeTraceMarkerUnsaved"), self.__changeMarkerUnsaved) |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
4400 | self.markerDefine(self.__createChangeMarkerPixmap( |
f89fc1162ffe
Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2164
diff
changeset
|
4401 | "OnlineChangeTraceMarkerSaved"), self.__changeMarkerSaved) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
4402 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
4403 | # refresh the annotations display |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
4404 | self.__refreshAnnotations() |
3341
7c015811fc4d
Finished implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3329
diff
changeset
|
4405 | |
6278
13fd8759f981
Editor, E5MapWidget: added a configuration option (Editor->Style page) to show the marker map on the left or right of the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
4406 | self.__markerMap.setMapPosition( |
13fd8759f981
Editor, E5MapWidget: added a configuration option (Editor->Style page) to show the marker map on the left or right of the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6247
diff
changeset
|
4407 | Preferences.getEditor("ShowMarkerMapOnRight")) |
3341
7c015811fc4d
Finished implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3329
diff
changeset
|
4408 | self.__markerMap.initColors() |
5416
16366120b523
Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
4409 | |
16366120b523
Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
4410 | self.settingsRead.emit() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4411 | |
5733
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4412 | def __setLineMarkerColours(self): |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4413 | """ |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4414 | Private method to set the line marker colours. |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4415 | """ |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4416 | self.setMarkerForegroundColor( |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4417 | Preferences.getEditorColour("CurrentMarker"), self.currentline) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4418 | self.setMarkerBackgroundColor( |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4419 | Preferences.getEditorColour("CurrentMarker"), self.currentline) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4420 | self.setMarkerForegroundColor( |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4421 | Preferences.getEditorColour("ErrorMarker"), self.errorline) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4422 | self.setMarkerBackgroundColor( |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4423 | Preferences.getEditorColour("ErrorMarker"), self.errorline) |
aed3e558407f
Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5706
diff
changeset
|
4424 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4425 | def __setMarginsDisplay(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4426 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4427 | Private method to configure margins 0 and 2. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4428 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4429 | # set the settings for all margins |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4430 | self.setMarginsFont(Preferences.getEditorOtherFonts("MarginsFont")) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4431 | self.setMarginsForegroundColor( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4432 | Preferences.getEditorColour("MarginsForeground")) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4433 | self.setMarginsBackgroundColor( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4434 | Preferences.getEditorColour("MarginsBackground")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4435 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4436 | # reset standard margins settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4437 | for margin in range(5): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4438 | self.setMarginLineNumbers(margin, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4439 | self.setMarginMarkerMask(margin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4440 | self.setMarginWidth(margin, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4441 | self.setMarginSensitivity(margin, False) |
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 | # set marker margin(s) settings |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4444 | self.__bmMargin = 0 |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4445 | self.__linenoMargin = 1 |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4446 | self.__bpMargin = 2 |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4447 | self.__foldMargin = 3 |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4448 | self.__indicMargin = 4 |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4449 | |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4450 | marginBmMask = (1 << self.bookmark) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4451 | self.setMarginWidth(self.__bmMargin, 16) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4452 | self.setMarginSensitivity(self.__bmMargin, True) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4453 | self.setMarginMarkerMask(self.__bmMargin, marginBmMask) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4454 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4455 | marginBpMask = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4456 | (1 << self.breakpoint) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4457 | (1 << self.cbreakpoint) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4458 | (1 << self.tbreakpoint) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4459 | (1 << self.tcbreakpoint) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4460 | (1 << self.dbreakpoint) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4461 | ) |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4462 | self.setMarginWidth(self.__bpMargin, 16) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4463 | self.setMarginSensitivity(self.__bpMargin, True) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4464 | self.setMarginMarkerMask(self.__bpMargin, marginBpMask) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4465 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4466 | marginIndicMask = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4467 | (1 << self.syntaxerror) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4468 | (1 << self.notcovered) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4469 | (1 << self.taskmarker) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4470 | (1 << self.warning) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4471 | (1 << self.__changeMarkerUnsaved) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4472 | (1 << self.__changeMarkerSaved) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4473 | (1 << self.currentline) | |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4474 | (1 << self.errorline) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4475 | ) |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4476 | self.setMarginWidth(self.__indicMargin, 16) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4477 | self.setMarginSensitivity(self.__indicMargin, True) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
4478 | self.setMarginMarkerMask(self.__indicMargin, marginIndicMask) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4479 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4480 | # set linenumber margin settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4481 | linenoMargin = Preferences.getEditor("LinenoMargin") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4482 | self.setMarginLineNumbers(self.__linenoMargin, linenoMargin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4483 | if linenoMargin: |
2640
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4484 | self.__resizeLinenoMargin() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4485 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4486 | self.setMarginWidth(self.__linenoMargin, 0) |
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 | # set folding margin settings |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4489 | if Preferences.getEditor("FoldingMargin"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4490 | self.setMarginWidth(self.__foldMargin, 16) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4491 | folding = Preferences.getEditor("FoldingStyle") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4492 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4493 | folding = QsciScintilla.FoldStyle(folding) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4494 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4495 | pass |
342
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
4496 | self.setFolding(folding, self.__foldMargin) |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
4497 | self.setFoldMarginColors( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4498 | Preferences.getEditorColour("FoldmarginBackground"), |
342
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
4499 | Preferences.getEditorColour("FoldmarginBackground")) |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
4500 | self.setFoldMarkersColors( |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
4501 | Preferences.getEditorColour("FoldMarkersForeground"), |
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
4502 | Preferences.getEditorColour("FoldMarkersBackground")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4503 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4504 | self.setMarginWidth(self.__foldMargin, 0) |
342
360c4eb76d6c
Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
4505 | self.setFolding(QsciScintilla.NoFoldStyle, self.__foldMargin) |
2640
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4506 | |
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4507 | def __resizeLinenoMargin(self): |
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4508 | """ |
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4509 | Private slot to resize the line numbers margin. |
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4510 | """ |
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4511 | linenoMargin = Preferences.getEditor("LinenoMargin") |
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4512 | if linenoMargin: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4513 | self.setMarginWidth( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4514 | self.__linenoMargin, '8' * (len(str(self.lines())) + 1)) |
2640
dedcd4f987e0
Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2632
diff
changeset
|
4515 | |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4516 | def __setTabAndIndent(self): |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4517 | """ |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4518 | Private method to set indentation size and style and tab width. |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4519 | """ |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4520 | self.setTabWidth(self.__getEditorConfig("TabWidth")) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4521 | self.setIndentationWidth(self.__getEditorConfig("IndentWidth")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4522 | if self.lexer_ and self.lexer_.alwaysKeepTabs(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4523 | self.setIndentationsUseTabs(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4524 | else: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4525 | self.setIndentationsUseTabs( |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4526 | self.__getEditorConfig("TabForIndentation")) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4527 | |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4528 | def __setTextDisplay(self): |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4529 | """ |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4530 | Private method to configure the text display. |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4531 | """ |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4532 | self.__setTabAndIndent() |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4533 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4534 | self.setTabIndents(Preferences.getEditor("TabIndents")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4535 | self.setBackspaceUnindents(Preferences.getEditor("TabIndents")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4536 | self.setIndentationGuides(Preferences.getEditor("IndentationGuides")) |
4176
4c09d3d75768
Added capability to configure the indentation guides colors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4170
diff
changeset
|
4537 | self.setIndentationGuidesBackgroundColor( |
4c09d3d75768
Added capability to configure the indentation guides colors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4170
diff
changeset
|
4538 | Preferences.getEditorColour("IndentationGuidesBackground")) |
4c09d3d75768
Added capability to configure the indentation guides colors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4170
diff
changeset
|
4539 | self.setIndentationGuidesForegroundColor( |
4c09d3d75768
Added capability to configure the indentation guides colors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4170
diff
changeset
|
4540 | Preferences.getEditorColour("IndentationGuidesForeground")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4541 | if Preferences.getEditor("ShowWhitespace"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4542 | self.setWhitespaceVisibility(QsciScintilla.WsVisible) |
939
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4543 | try: |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4544 | self.setWhitespaceForegroundColor( |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4545 | Preferences.getEditorColour("WhitespaceForeground")) |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4546 | self.setWhitespaceBackgroundColor( |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4547 | Preferences.getEditorColour("WhitespaceBackground")) |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4548 | self.setWhitespaceSize( |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4549 | Preferences.getEditor("WhitespaceSize")) |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4550 | except AttributeError: |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4551 | # QScintilla before 2.5 doesn't support this |
10d3a201cd27
Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
4552 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4553 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4554 | self.setWhitespaceVisibility(QsciScintilla.WsInvisible) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4555 | self.setEolVisibility(Preferences.getEditor("ShowEOL")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4556 | self.setAutoIndent(Preferences.getEditor("AutoIndentation")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4557 | if Preferences.getEditor("BraceHighlighting"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4558 | self.setBraceMatching(QsciScintilla.SloppyBraceMatch) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4559 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4560 | self.setBraceMatching(QsciScintilla.NoBraceMatch) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4561 | self.setMatchedBraceForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4562 | Preferences.getEditorColour("MatchingBrace")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4563 | self.setMatchedBraceBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4564 | Preferences.getEditorColour("MatchingBraceBack")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4565 | self.setUnmatchedBraceForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4566 | Preferences.getEditorColour("NonmatchingBrace")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4567 | self.setUnmatchedBraceBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4568 | Preferences.getEditorColour("NonmatchingBraceBack")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4569 | if Preferences.getEditor("CustomSelectionColours"): |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4570 | self.setSelectionBackgroundColor( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4571 | Preferences.getEditorColour("SelectionBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4572 | else: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4573 | self.setSelectionBackgroundColor( |
2084
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2077
diff
changeset
|
4574 | QApplication.palette().color(QPalette.Highlight)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4575 | if Preferences.getEditor("ColourizeSelText"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4576 | self.resetSelectionForegroundColor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4577 | elif Preferences.getEditor("CustomSelectionColours"): |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4578 | self.setSelectionForegroundColor( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4579 | Preferences.getEditorColour("SelectionForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4580 | else: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
4581 | self.setSelectionForegroundColor( |
2084
d3f083dd0222
Made the fiveth set of Qt5 compatibility changes (some of the previous changes are backed out due to changes in PyQt4).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2077
diff
changeset
|
4582 | QApplication.palette().color(QPalette.HighlightedText)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4583 | self.setSelectionToEol(Preferences.getEditor("ExtendSelectionToEol")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4584 | self.setCaretForegroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4585 | Preferences.getEditorColour("CaretForeground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4586 | self.setCaretLineBackgroundColor( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4587 | Preferences.getEditorColour("CaretLineBackground")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4588 | self.setCaretLineVisible(Preferences.getEditor("CaretLineVisible")) |
3067
8fd7ae10de2b
Implemented support for the new QScintilla feature to always highlight the caret line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3062
diff
changeset
|
4589 | self.setCaretLineAlwaysVisible( |
8fd7ae10de2b
Implemented support for the new QScintilla feature to always highlight the caret line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3062
diff
changeset
|
4590 | Preferences.getEditor("CaretLineAlwaysVisible")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4591 | self.caretWidth = Preferences.getEditor("CaretWidth") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4592 | self.setCaretWidth(self.caretWidth) |
6843
5e1afd1577b9
Editor: added these capabilities
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6842
diff
changeset
|
4593 | self.caretLineFrameWidth = Preferences.getEditor("CaretLineFrameWidth") |
7224
18519d376be4
Editor: fixed an issue introduced during the code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7202
diff
changeset
|
4594 | if QSCINTILLA_VERSION() >= 0x020B00: |
18519d376be4
Editor: fixed an issue introduced during the code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7202
diff
changeset
|
4595 | self.setCaretLineFrameWidth(self.caretLineFrameWidth) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4596 | self.useMonospaced = Preferences.getEditor("UseMonospacedFont") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4597 | self.setMonospaced(self.useMonospaced) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4598 | edgeMode = Preferences.getEditor("EdgeMode") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4599 | edge = QsciScintilla.EdgeMode(edgeMode) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4600 | self.setEdgeMode(edge) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4601 | if edgeMode: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4602 | self.setEdgeColumn(Preferences.getEditor("EdgeColumn")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4603 | self.setEdgeColor(Preferences.getEditorColour("Edge")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4604 | |
2262
2371836c3c45
Made some more adjustments for QScintilla 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2261
diff
changeset
|
4605 | wrapVisualFlag = Preferences.getEditor("WrapVisualFlag") |
2371836c3c45
Made some more adjustments for QScintilla 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2261
diff
changeset
|
4606 | self.setWrapMode(Preferences.getEditor("WrapLongLinesMode")) |
2371836c3c45
Made some more adjustments for QScintilla 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2261
diff
changeset
|
4607 | self.setWrapVisualFlags(wrapVisualFlag, wrapVisualFlag) |
6842
c83dcb7c6147
Editor, MiniEditor: added capability to configure the subline indentation for wrapped lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6809
diff
changeset
|
4608 | self.setWrapIndentMode(Preferences.getEditor("WrapIndentMode")) |
6843
5e1afd1577b9
Editor: added these capabilities
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6842
diff
changeset
|
4609 | self.setWrapStartIndent(Preferences.getEditor("WrapStartIndent")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4610 | |
230
2cde09c26384
Added code to configure the zoom factor a file is opened with.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
4611 | 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
|
4612 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4613 | self.searchIndicator = QsciScintilla.INDIC_CONTAINER |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
4614 | self.indicatorDefine( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
4615 | self.searchIndicator, QsciScintilla.INDIC_BOX, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4616 | Preferences.getEditorColour("SearchMarkers")) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4617 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4618 | not Preferences.getEditor("SearchMarkersEnabled") and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4619 | not Preferences.getEditor("QuickSearchMarkersEnabled") and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4620 | not Preferences.getEditor("MarkOccurrencesEnabled") |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4621 | ): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4622 | self.clearAllIndicators(self.searchIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4623 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4624 | self.spellingIndicator = QsciScintilla.INDIC_CONTAINER + 1 |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4625 | self.indicatorDefine( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4626 | self.spellingIndicator, QsciScintilla.INDIC_SQUIGGLE, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4627 | Preferences.getEditorColour("SpellingMarkers")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4628 | self.__setSpelling() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4629 | |
6932
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
4630 | self.highlightIndicator = QsciScintilla.INDIC_CONTAINER + 2 |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
4631 | self.indicatorDefine( |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
4632 | self.highlightIndicator, QsciScintilla.INDIC_FULLBOX, |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
4633 | Preferences.getEditorColour("HighlightMarker")) |
6930
33c98cea84f0
Editor: added a few TODO comments
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6891
diff
changeset
|
4634 | |
404
44a541bea034
Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
342
diff
changeset
|
4635 | self.setCursorFlashTime(QApplication.cursorFlashTime()) |
44a541bea034
Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
342
diff
changeset
|
4636 | |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
4637 | try: |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
4638 | if Preferences.getEditor("AnnotationsEnabled"): |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
4639 | self.setAnnotationDisplay(QsciScintilla.AnnotationBoxed) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
4640 | else: |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
4641 | self.setAnnotationDisplay(QsciScintilla.AnnotationHidden) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
4642 | except AttributeError: |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
4643 | pass |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
4644 | self.__setAnnotationStyles() |
1566
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
4645 | |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
4646 | if Preferences.getEditor("OverrideEditAreaColours"): |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
4647 | self.setColor(Preferences.getEditorColour("EditAreaForeground")) |
0cb791cc631a
Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1518
diff
changeset
|
4648 | self.setPaper(Preferences.getEditorColour("EditAreaBackground")) |
2659
7f46c5a7ed73
Added support for virtual space to the Editor and Mini Editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2643
diff
changeset
|
4649 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4650 | self.setVirtualSpaceOptions( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4651 | Preferences.getEditor("VirtualSpaceOptions")) |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
4652 | |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
4653 | self.__markerMap.setEnabled(True) |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
4654 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4655 | def __setEolMode(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4656 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4657 | 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
|
4658 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4659 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4660 | self.fileName and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4661 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4662 | self.project.isProjectFile(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4663 | ): |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4664 | eolMode = self.__getEditorConfig("EOLMode", nodefault=True) |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
4665 | if eolMode is None: |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4666 | eolStr = self.project.getEolString() |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4667 | self.setEolModeByEolString(eolStr) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4668 | else: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
4669 | self.setEolMode(eolMode) |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
4670 | else: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
4671 | eolMode = self.__getEditorConfig("EOLMode") |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
4672 | eolMode = QsciScintilla.EolMode(eolMode) |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
4673 | self.setEolMode(eolMode) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4674 | self.__eolChanged() |
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 | def __setAutoCompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4677 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4678 | Private method to configure the autocompletion function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4679 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4680 | if self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4681 | self.setAutoCompletionFillupsEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4682 | Preferences.getEditor("AutoCompletionFillups")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4683 | self.setAutoCompletionCaseSensitivity( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4684 | Preferences.getEditor("AutoCompletionCaseSensitivity")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4685 | self.setAutoCompletionReplaceWord( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4686 | Preferences.getEditor("AutoCompletionReplaceWord")) |
6306
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
4687 | self.setAutoCompletionThreshold(0) |
971
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
4688 | try: |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
4689 | self.setAutoCompletionUseSingle( |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
4690 | Preferences.getEditor("AutoCompletionShowSingle")) |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
4691 | except AttributeError: |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
4692 | self.setAutoCompletionShowSingle( |
1243c600ba57
Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
954
diff
changeset
|
4693 | Preferences.getEditor("AutoCompletionShowSingle")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4694 | autoCompletionSource = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4695 | if autoCompletionSource == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4696 | self.setAutoCompletionSource(QsciScintilla.AcsDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4697 | elif autoCompletionSource == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4698 | self.setAutoCompletionSource(QsciScintilla.AcsAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4699 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4700 | self.setAutoCompletionSource(QsciScintilla.AcsAll) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4701 | |
6305
7652b925c25e
Resize auto complete list box to fit with contents.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6299
diff
changeset
|
4702 | self.maxLines = Preferences.getEditor("AutoCompletionMaxLines") |
7652b925c25e
Resize auto complete list box to fit with contents.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6299
diff
changeset
|
4703 | self.maxChars = Preferences.getEditor("AutoCompletionMaxChars") |
7652b925c25e
Resize auto complete list box to fit with contents.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6299
diff
changeset
|
4704 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4705 | def __setCallTips(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 | Private method to configure the calltips function. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4708 | """ |
4201
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4709 | self.setCallTipsBackgroundColor( |
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4710 | Preferences.getEditorColour("CallTipsBackground")) |
7536
861e46f99d65
Editor, Shell: added configuration option for the calltips foreground and highlight color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
4711 | self.setCallTipsForegroundColor( |
861e46f99d65
Editor, Shell: added configuration option for the calltips foreground and highlight color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
4712 | Preferences.getEditorColour("CallTipsForeground")) |
861e46f99d65
Editor, Shell: added configuration option for the calltips foreground and highlight color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
4713 | self.setCallTipsHighlightColor( |
861e46f99d65
Editor, Shell: added configuration option for the calltips foreground and highlight color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
4714 | Preferences.getEditorColour("CallTipsHighlight")) |
4201
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4715 | self.setCallTipsVisible(Preferences.getEditor("CallTipsVisible")) |
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4716 | calltipsStyle = Preferences.getEditor("CallTipsStyle") |
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4717 | try: |
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4718 | self.setCallTipsPosition( |
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4719 | Preferences.getEditor("CallTipsPosition")) |
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4720 | except AttributeError: |
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4721 | pass |
2a9316cb3fad
Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4176
diff
changeset
|
4722 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4723 | if Preferences.getEditor("CallTipsEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4724 | if calltipsStyle == QsciScintilla.CallTipsNoContext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4725 | self.setCallTipsStyle(QsciScintilla.CallTipsNoContext) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4726 | elif ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4727 | calltipsStyle == QsciScintilla.CallTipsNoAutoCompletionContext |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4728 | ): |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4729 | self.setCallTipsStyle( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4730 | QsciScintilla.CallTipsNoAutoCompletionContext) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4731 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4732 | self.setCallTipsStyle(QsciScintilla.CallTipsContext) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4733 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4734 | self.setCallTipsStyle(QsciScintilla.CallTipsNone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4735 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4736 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4737 | ## Autocompletion handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4738 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4739 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4740 | def canAutoCompleteFromAPIs(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4741 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4742 | Public method to check for API availablity. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4743 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4744 | @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
|
4745 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4746 | return self.acAPI |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4747 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4748 | def autoCompleteQScintilla(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4749 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4750 | 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
|
4751 | """ |
5932
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
4752 | self.__acText = ' ' # Prevent long running ACs to add results |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
4753 | self.__acWatchdog.stop() |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
4754 | if self.__acCompletions: |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
4755 | return |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
4756 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4757 | acs = Preferences.getEditor("AutoCompletionSource") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4758 | if acs == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4759 | self.autoCompleteFromDocument() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4760 | elif acs == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4761 | self.autoCompleteFromAPIs() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4762 | elif acs == QsciScintilla.AcsAll: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4763 | self.autoCompleteFromAll() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4764 | else: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
4765 | E5MessageBox.information( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
4766 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
4767 | self.tr("Autocompletion"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
4768 | self.tr( |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
4769 | """Autocompletion is not available because""" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4770 | """ there is no autocompletion source set.""")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4771 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4772 | def setAutoCompletionEnabled(self, enable): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4773 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4774 | Public method to enable/disable autocompletion. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4775 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4776 | @param enable flag indicating the desired autocompletion status |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4777 | (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4778 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4779 | if enable: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4780 | autoCompletionSource = Preferences.getEditor( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4781 | "AutoCompletionSource") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4782 | if autoCompletionSource == QsciScintilla.AcsDocument: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4783 | self.setAutoCompletionSource(QsciScintilla.AcsDocument) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4784 | elif autoCompletionSource == QsciScintilla.AcsAPIs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4785 | self.setAutoCompletionSource(QsciScintilla.AcsAPIs) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4786 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4787 | self.setAutoCompletionSource(QsciScintilla.AcsAll) |
6306
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
4788 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4789 | def __toggleAutoCompletionEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4790 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4791 | 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
|
4792 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4793 | if self.menuActs["AutoCompletionEnable"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4794 | self.setAutoCompletionEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4795 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4796 | self.setAutoCompletionEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4797 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4798 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4799 | ## Support for autocompletion hook methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4800 | ################################################################# |
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 | def __charAdded(self, charNumber): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4803 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
4804 | Private slot called to handle the user entering a character. |
92
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 | @param charNumber value of the character entered (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4807 | """ |
6306
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
4808 | char = chr(charNumber) |
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
4809 | # update code documentation viewer |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4810 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4811 | char == "(" and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4812 | Preferences.getDocuViewer("ShowInfoOnOpenParenthesis") |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4813 | ): |
6306
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
4814 | self.vm.showEditorInfo(self) |
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
4815 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4816 | if self.isListActive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4817 | if self.__isStartChar(char): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4818 | self.cancelList() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4819 | self.autoComplete(auto=True, context=True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4820 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4821 | elif char == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4822 | self.cancelList() |
6030
63d1c50b637d
Little fix for an auto-completion issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6025
diff
changeset
|
4823 | else: |
63d1c50b637d
Little fix for an auto-completion issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6025
diff
changeset
|
4824 | self.__acTimer.stop() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4825 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4826 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4827 | self.callTipsStyle() != QsciScintilla.CallTipsNone and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4828 | self.lexer_ is not None and chr(charNumber) in '()' |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4829 | ): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4830 | self.callTip() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4831 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4832 | if not self.isCallTipActive(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4833 | char = chr(charNumber) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4834 | if self.__isStartChar(char): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4835 | self.autoComplete(auto=True, context=True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4836 | return |
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 | line, col = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4839 | txt = self.getWordLeft(line, col) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4840 | if len(txt) >= Preferences.getEditor("AutoCompletionThreshold"): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4841 | self.autoComplete(auto=True, context=False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4842 | return |
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 | def __isStartChar(self, ch): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4845 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4846 | Private method to check, if a character is an autocompletion start |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4847 | character. |
92
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 | @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
|
4850 | @return flag indicating the result (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4851 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4852 | if self.lexer_ is None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4853 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4854 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4855 | wseps = self.lexer_.autoCompletionWordSeparators() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4856 | for wsep in wseps: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4857 | if wsep.endswith(ch): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4858 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4859 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4860 | return False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4861 | |
6033
967b3e3e5b4d
Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6030
diff
changeset
|
4862 | def __autocompletionCancelled(self): |
967b3e3e5b4d
Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6030
diff
changeset
|
4863 | """ |
967b3e3e5b4d
Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6030
diff
changeset
|
4864 | Private slot to handle the cancellation of an auto-completion list. |
967b3e3e5b4d
Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6030
diff
changeset
|
4865 | """ |
967b3e3e5b4d
Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6030
diff
changeset
|
4866 | self.__acWatchdog.stop() |
967b3e3e5b4d
Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6030
diff
changeset
|
4867 | |
967b3e3e5b4d
Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6030
diff
changeset
|
4868 | self.__acText = "" |
967b3e3e5b4d
Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6030
diff
changeset
|
4869 | |
5881
13381dbbb81e
Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
4870 | ################################################################# |
13381dbbb81e
Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
4871 | ## auto-completion hook interfaces |
13381dbbb81e
Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
4872 | ################################################################# |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4873 | |
6247
5c677a7f7d51
Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6210
diff
changeset
|
4874 | def addCompletionListHook(self, key, func, asynchroneous=False): |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4875 | """ |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4876 | Public method to set an auto-completion list provider. |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4877 | |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4878 | @param key name of the provider |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4879 | @type str |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4880 | @param func function providing completion list. func |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4881 | should be a function taking a reference to the editor and |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4882 | a boolean indicating to complete a context. It should return |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4883 | the possible completions as a list of strings. |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4884 | @type function(editor, bool) -> list of str in case async is False |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4885 | and function(editor, bool, str) returning nothing in case async |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4886 | is True |
6247
5c677a7f7d51
Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6210
diff
changeset
|
4887 | @param asynchroneous flag indicating an asynchroneous function |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4888 | @type bool |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4889 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4890 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4891 | key in self.__completionListHookFunctions or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4892 | key in self.__completionListAsyncHookFunctions |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4893 | ): |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4894 | # it was already registered |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4895 | E5MessageBox.warning( |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4896 | self, |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4897 | self.tr("Auto-Completion Provider"), |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4898 | self.tr("""The completion list provider '{0}' was already""" |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4899 | """ registered. Ignoring duplicate request.""") |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4900 | .format(key)) |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4901 | return |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4902 | |
6247
5c677a7f7d51
Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6210
diff
changeset
|
4903 | if asynchroneous: |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4904 | self.__completionListAsyncHookFunctions[key] = func |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4905 | else: |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4906 | self.__completionListHookFunctions[key] = func |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4907 | |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4908 | def removeCompletionListHook(self, key): |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4909 | """ |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4910 | Public method to remove a previously registered completion list |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4911 | provider. |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4912 | |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4913 | @param key name of the provider |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4914 | @type str |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4915 | """ |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4916 | if key in self.__completionListHookFunctions: |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4917 | del self.__completionListHookFunctions[key] |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4918 | elif key in self.__completionListAsyncHookFunctions: |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4919 | del self.__completionListAsyncHookFunctions[key] |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4920 | |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4921 | def getCompletionListHook(self, key): |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4922 | """ |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4923 | Public method to get the registered completion list provider. |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4924 | |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4925 | @param key name of the provider |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4926 | @type str |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4927 | @return function providing completion list |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4928 | @rtype function or None |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4929 | """ |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4930 | return (self.__completionListHookFunctions.get(key) or |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4931 | self.__completionListAsyncHookFunctions.get(key)) |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4932 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
4933 | def autoComplete(self, auto=False, context=True): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4934 | """ |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4935 | Public method to start auto-completion. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4936 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4937 | @keyparam auto flag indicating a call from the __charAdded method |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
4938 | (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4939 | @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
|
4940 | """ |
6306
af71f34a0cfb
Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6305
diff
changeset
|
4941 | if auto and not Preferences.getEditor("AutoCompletionEnabled"): |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4942 | # auto-completion is disabled |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4943 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4944 | |
6025
9dfb5a421a56
Little fix for the editor completion list handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5987
diff
changeset
|
4945 | if self.isListActive(): |
9dfb5a421a56
Little fix for the editor completion list handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5987
diff
changeset
|
4946 | self.cancelList() |
9dfb5a421a56
Little fix for the editor completion list handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5987
diff
changeset
|
4947 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4948 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4949 | self.__completionListHookFunctions or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4950 | self.__completionListAsyncHookFunctions |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
4951 | ): |
6809
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4952 | # Avoid delayed auto-completion after cursor repositioning |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4953 | self.__acText = self.__getAcText() |
5916
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4954 | if auto and Preferences.getEditor("AutoCompletionTimeout"): |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4955 | self.__acTimer.stop() |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4956 | self.__acContext = context |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4957 | self.__acTimer.start() |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
4958 | else: |
5916
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4959 | self.__autoComplete(auto, context) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4960 | elif not auto: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4961 | self.autoCompleteQScintilla() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4962 | elif self.autoCompletionSource() != QsciScintilla.AcsNone: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4963 | self.autoCompleteQScintilla() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
4964 | |
6809
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4965 | def __getAcText(self): |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4966 | """ |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4967 | Private method to get the text from cursor position for autocompleting. |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4968 | |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4969 | @return text left of cursor position |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4970 | @rtype str |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4971 | """ |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4972 | line, col = self.getCursorPosition() |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4973 | text = self.text(line) |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4974 | try: |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4975 | if self.__isStartChar(text[col - 1]): |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4976 | acText = self.getWordLeft(line, col - 1) + text[col - 1] |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4977 | else: |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4978 | acText = self.getWordLeft(line, col) |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4979 | except IndexError: |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4980 | acText = "" |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4981 | |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4982 | return acText |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
4983 | |
5916
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4984 | def __autoComplete(self, auto=True, context=None): |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4985 | """ |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4986 | Private method to start auto-completion via plug-ins. |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4987 | |
5916
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4988 | @keyparam auto flag indicating a call from the __charAdded method |
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4989 | (boolean) |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4990 | @keyparam context flag indicating to complete a context |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4991 | @type bool or None |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4992 | """ |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4993 | self.__acCompletions.clear() |
5932
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
4994 | self.__acCompletionsFinished = 0 |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
4995 | |
5916
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4996 | # Suppress empty completions |
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4997 | if auto and self.__acText == '': |
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4998 | return |
26a37798aa75
Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5913
diff
changeset
|
4999 | |
6755
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
5000 | if self.__acCacheEnabled: |
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
5001 | completions = self.__acCache.get(self.__acText) |
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
5002 | else: |
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
5003 | completions = None |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5004 | if completions is not None: |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5005 | # show list with cached entries |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5006 | if self.isListActive(): |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5007 | self.cancelList() |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5008 | |
5890
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5009 | self.__showCompletionsList(completions) |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5010 | else: |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5011 | if context is None: |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5012 | context = self.__acContext |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5013 | |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5014 | for key in self.__completionListAsyncHookFunctions: |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5015 | self.__completionListAsyncHookFunctions[key]( |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5016 | self, context, self.__acText) |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5017 | |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5018 | for key in self.__completionListHookFunctions: |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5019 | completions = self.__completionListHookFunctions[key]( |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5020 | self, context) |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5021 | self.completionsListReady(completions, self.__acText) |
5932
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
5022 | |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
5023 | if Preferences.getEditor("AutoCompletionScintillaOnFail"): |
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
5024 | self.__acWatchdog.start() |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5025 | |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5026 | def completionsListReady(self, completions, acText): |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5027 | """ |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5028 | Public method to show the completions determined by a completions |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5029 | provider. |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5030 | |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5031 | @param completions list of possible completions |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5032 | @type list of str or set of str |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5033 | @param acText text to be completed |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5034 | @type str |
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5035 | """ |
6809
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
5036 | currentWord = self.__getAcText() or ' ' |
5935
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5037 | # process the list only, if not already obsolete ... |
6809
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
5038 | if acText != self.__acText or not self.__acText.endswith(currentWord): |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
5039 | # Suppress auto-completion done by QScintilla as fallback |
d1048e6db7f5
Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6755
diff
changeset
|
5040 | self.__acWatchdog.stop() |
5967
da72832f7c22
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5935
diff
changeset
|
5041 | return |
5935
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5042 | |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5043 | self.__acCompletions.update(set(completions)) |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5044 | |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5045 | self.__acCompletionsFinished += 1 |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5046 | # Got all results from auto completer? |
6498
674ac2051e8a
Editor: fixed an issue related to auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6493
diff
changeset
|
5047 | if self.__acCompletionsFinished >= ( |
674ac2051e8a
Editor: fixed an issue related to auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6493
diff
changeset
|
5048 | len(self.__completionListAsyncHookFunctions) + |
674ac2051e8a
Editor: fixed an issue related to auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6493
diff
changeset
|
5049 | len(self.__completionListHookFunctions) |
674ac2051e8a
Editor: fixed an issue related to auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6493
diff
changeset
|
5050 | ): |
5935
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5051 | self.__acWatchdog.stop() |
5932
af9aa23e12ec
Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5919
diff
changeset
|
5052 | |
5935
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5053 | # Autocomplete with QScintilla if no results present |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5054 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5055 | Preferences.getEditor("AutoCompletionScintillaOnFail") and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5056 | not self.__acCompletions |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5057 | ): |
5935
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5058 | self.autoCompleteQScintilla() |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5059 | return |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5060 | |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5061 | # ... or completions are not empty |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5062 | if not bool(completions): |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5063 | return |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5064 | |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5065 | if self.isListActive(): |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5066 | self.cancelList() |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5067 | |
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5068 | if self.__acCompletions: |
6755
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
5069 | if self.__acCacheEnabled: |
009812744917
Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6735
diff
changeset
|
5070 | self.__acCache.add(acText, set(self.__acCompletions)) |
5935
1fac1b80b440
Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5932
diff
changeset
|
5071 | self.__showCompletionsList(self.__acCompletions) |
5890
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5072 | |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5073 | def __showCompletionsList(self, completions): |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5074 | """ |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5075 | Private method to show the completions list. |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5076 | |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5077 | @param completions completions to be shown |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5078 | @type list of str or set of str |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5079 | """ |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5080 | if Preferences.getEditor("AutoCompletionReversedList"): |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5081 | acCompletions = sorted( |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5082 | list(completions), |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5083 | key=self.__replaceLeadingUnderscores) |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5084 | else: |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5085 | acCompletions = sorted(list(completions)) |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5086 | self.showUserList(EditorAutoCompletionListID, acCompletions) |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5087 | |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5088 | def __replaceLeadingUnderscores(self, txt): |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5089 | """ |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5090 | Private method to replace the first two underlines for invers sorting. |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5091 | |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5092 | @param txt completion text |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5093 | @type str |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5094 | @return modified completion text |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5095 | @rtype str |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5096 | """ |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5097 | if txt.startswith('_'): |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5098 | return txt[:2].replace('_', '~') + txt[2:] |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5099 | else: |
22ec89341f5e
Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5888
diff
changeset
|
5100 | return txt |
5886
ba6d27371e25
Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5881
diff
changeset
|
5101 | |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5102 | def __clearCompletionsCache(self): |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5103 | """ |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5104 | Private method to clear the auto-completions cache. |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5105 | """ |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5106 | self.__acCache.clear() |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5107 | |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
5108 | def __completionListSelected(self, listId, txt): |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5109 | """ |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5110 | Private slot to handle the selection from the completion list. |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5111 | |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
5112 | @param listId the ID of the user list (should be 1 or 2) (integer) |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5113 | @param txt the selected text (string) |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5114 | """ |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
5115 | if listId == EditorAutoCompletionListID: |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5116 | lst = txt.split() |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5117 | if len(lst) > 1: |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5118 | txt = lst[0] |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5119 | |
6036
d65f5052fb10
Wrapped the application of a completion in beginUndoAction()/endUndoAction() to register it as an undoable change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6035
diff
changeset
|
5120 | self.beginUndoAction() |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5121 | if Preferences.getEditor("AutoCompletionReplaceWord"): |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5122 | self.selectCurrentWord() |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5123 | self.removeSelectedText() |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5124 | line, col = self.getCursorPosition() |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5125 | else: |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5126 | line, col = self.getCursorPosition() |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5127 | wLeft = self.getWordLeft(line, col) |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5128 | if not txt.startswith(wLeft): |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5129 | self.selectCurrentWord() |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5130 | self.removeSelectedText() |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5131 | line, col = self.getCursorPosition() |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5132 | elif wLeft: |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5133 | txt = txt[len(wLeft):] |
7543
a737e240f27b
Improved editor to handle autocomplete of dictionary keys.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7536
diff
changeset
|
5134 | |
7575
3ebd1db41c15
Editor: fixed an issue caused by an invalid string index.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7546
diff
changeset
|
5135 | if txt and txt[0] in "'\"": |
3ebd1db41c15
Editor: fixed an issue caused by an invalid string index.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7546
diff
changeset
|
5136 | # New in jedi 0.16: AC of dict keys |
7543
a737e240f27b
Improved editor to handle autocomplete of dictionary keys.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7536
diff
changeset
|
5137 | txt = txt[1:] |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5138 | self.insert(txt) |
6036
d65f5052fb10
Wrapped the application of a completion in beginUndoAction()/endUndoAction() to register it as an undoable change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6035
diff
changeset
|
5139 | self.endUndoAction() |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5140 | self.setCursorPosition(line, col + len(txt)) |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
5141 | elif listId == TemplateCompletionListID: |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5142 | self.__applyTemplate(txt, self.getLanguage()) |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5143 | |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5144 | def canProvideDynamicAutoCompletion(self): |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5145 | """ |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5146 | Public method to test the dynamic auto-completion availability. |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5147 | |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5148 | @return flag indicating the availability of dynamic auto-completion |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5149 | (boolean) |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5150 | """ |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5151 | return (self.acAPI or |
5891
2f8349f872ee
Fixed an omission related to the new async completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5890
diff
changeset
|
5152 | bool(self.__completionListHookFunctions) or |
2f8349f872ee
Fixed an omission related to the new async completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5890
diff
changeset
|
5153 | bool(self.__completionListAsyncHookFunctions)) |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5154 | |
5905
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5155 | ################################################################# |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5156 | ## call-tip hook interfaces |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5157 | ################################################################# |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5158 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5159 | def addCallTipHook(self, key, func): |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5160 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5161 | Public method to set a calltip provider. |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5162 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5163 | @param key name of the provider |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5164 | @type str |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5165 | @param func function providing calltips. func |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5166 | should be a function taking a reference to the editor, |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5167 | a position into the text and the amount of commas to the |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5168 | left of the cursor. It should return the possible |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5169 | calltips as a list of strings. |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5170 | @type function(editor, int, int) -> list of str |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5171 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5172 | if key in self.__ctHookFunctions: |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5173 | # it was already registered |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5174 | E5MessageBox.warning( |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5175 | self, |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5176 | self.tr("Call-Tips Provider"), |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5177 | self.tr("""The call-tips provider '{0}' was already""" |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5178 | """ registered. Ignoring duplicate request.""") |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5179 | .format(key)) |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5180 | return |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5181 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5182 | self.__ctHookFunctions[key] = func |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5183 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5184 | def removeCallTipHook(self, key): |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5185 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5186 | Public method to remove a previously registered calltip provider. |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5187 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5188 | @param key name of the provider |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5189 | @type str |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5190 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5191 | if key in self.__ctHookFunctions: |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5192 | del self.__ctHookFunctions[key] |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5193 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5194 | def getCallTipHook(self, key): |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5195 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5196 | Public method to get the registered calltip provider. |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5197 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5198 | @param key name of the provider |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5199 | @type str |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5200 | @return function providing calltips |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5201 | @rtype function or None |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5202 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5203 | if key in self.__ctHookFunctions: |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5204 | return self.__ctHookFunctions[key] |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5205 | else: |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5206 | return None |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5207 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5208 | def canProvideCallTipps(self): |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5209 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5210 | Public method to test the calltips availability. |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5211 | |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5212 | @return flag indicating the availability of calltips (boolean) |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5213 | """ |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5214 | return (self.acAPI or |
f31960634997
Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5900
diff
changeset
|
5215 | bool(self.__ctHookFunctions)) |
5913
7ab2293917f8
Changed the rich text display of the document viewer to use a QWebEngineView or QWebView based widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5911
diff
changeset
|
5216 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5217 | def callTip(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5218 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5219 | Public method to show calltips. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5220 | """ |
5881
13381dbbb81e
Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5736
diff
changeset
|
5221 | if bool(self.__ctHookFunctions): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5222 | self.__callTip() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5223 | else: |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
5224 | super(Editor, self).callTip() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5225 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5226 | def __callTip(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5227 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5228 | 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
|
5229 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5230 | pos = self.currentPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5231 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5232 | # move backward to the start of the current calltip working out |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5233 | # which argument to highlight |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5234 | commas = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5235 | found = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5236 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5237 | while ch: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5238 | if ch == ',': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5239 | commas += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5240 | elif ch == ')': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5241 | depth = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5242 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5243 | # ignore everything back to the start of the corresponding |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5244 | # parenthesis |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5245 | ch, pos = self.__getCharacter(pos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5246 | while ch: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5247 | if ch == ')': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5248 | depth += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5249 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5250 | depth -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5251 | if depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5252 | break |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
5253 | ch, pos = self.__getCharacter(pos) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5254 | elif ch == '(': |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5255 | found = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5256 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5257 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5258 | ch, pos = self.__getCharacter(pos) |
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 | self.SendScintilla(QsciScintilla.SCI_CALLTIPCANCEL) |
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 | if not found: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5263 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5264 | |
4271
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5265 | if self.__ctHookFunctions: |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5266 | callTips = [] |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5267 | for key in self.__ctHookFunctions: |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5268 | callTips.extend(self.__ctHookFunctions[key](self, pos, commas)) |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5269 | callTips = list(set(callTips)) |
480434472ac1
Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4227
diff
changeset
|
5270 | callTips.sort() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5271 | if len(callTips) == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5272 | if Preferences.getEditor("CallTipsScintillaOnFail"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5273 | # try QScintilla calltips |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
5274 | super(Editor, self).callTip() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5275 | return |
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 | ctshift = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5278 | for ct in callTips: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5279 | shift = ct.index("(") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5280 | if ctshift < shift: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5281 | ctshift = shift |
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 | cv = self.callTipsVisible() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5284 | if cv > 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5285 | # this is just a safe guard |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5286 | ct = self._encodeString("\n".join(callTips[:cv])) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5287 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5288 | # until here and unindent below |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5289 | ct = self._encodeString("\n".join(callTips)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5290 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
5291 | self.SendScintilla(QsciScintilla.SCI_CALLTIPSHOW, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5292 | self.__adjustedCallTipPosition(ctshift, pos), ct) |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5293 | if b'\n' in ct: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5294 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5295 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5296 | # Highlight the current argument |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5297 | if commas == 0: |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5298 | astart = ct.find(b'(') |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5299 | else: |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5300 | astart = ct.find(b',') |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5301 | commas -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5302 | while astart != -1 and commas > 0: |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5303 | astart = ct.find(b',', astart + 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5304 | commas -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5305 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5306 | if astart == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5307 | return |
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 | depth = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5310 | for aend in range(astart + 1, len(ct)): |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5311 | ch = ct[aend:aend + 1] |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5312 | |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5313 | if ch == b',' and depth == 0: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5314 | break |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5315 | elif ch == b'(': |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5316 | depth += 1 |
502
7500b9d5b21d
Fixed an issue in the editor related to unicode handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
5317 | elif ch == b')': |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5318 | if depth == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5319 | break |
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 | depth -= 1 |
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 astart != aend: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5324 | self.SendScintilla(QsciScintilla.SCI_CALLTIPSETHLT, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5325 | astart + 1, aend) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5326 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5327 | def __adjustedCallTipPosition(self, ctshift, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5328 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5329 | 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
|
5330 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5331 | @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
|
5332 | @param pos position into the text (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5333 | @return new position for the calltip (integer) |
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 | ct = pos |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5336 | if ctshift: |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
5337 | ctmin = self.SendScintilla( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
5338 | QsciScintilla.SCI_POSITIONFROMLINE, |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5339 | self.SendScintilla(QsciScintilla.SCI_LINEFROMPOSITION, ct)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5340 | if ct - ctshift < ctmin: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5341 | ct = ctmin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5342 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5343 | ct = ct - ctshift |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5344 | return ct |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5345 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5346 | ################################################################# |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5897
diff
changeset
|
5347 | ## Methods needed by the code documentation viewer |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5897
diff
changeset
|
5348 | ################################################################# |
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5897
diff
changeset
|
5349 | |
5907
c928af9fce32
Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
5350 | def __showCodeInfo(self): |
c928af9fce32
Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
5351 | """ |
c928af9fce32
Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
5352 | Private slot to handle the context menu action to show code info. |
c928af9fce32
Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
5353 | """ |
c928af9fce32
Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
5354 | self.vm.showEditorInfo(self) |
c928af9fce32
Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5905
diff
changeset
|
5355 | |
5900
cd90bfdc1247
Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5897
diff
changeset
|
5356 | ################################################################# |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5357 | ## Methods needed by the context menu |
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 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5360 | def __marginNumber(self, xPos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5361 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5362 | 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
|
5363 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5364 | @param xPos x position (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5365 | @return margin number (integer, -1 for no margin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5366 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5367 | width = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5368 | for margin in range(5): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5369 | width += self.marginWidth(margin) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5370 | if xPos <= width: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5371 | return margin |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5372 | return -1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5373 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5374 | def contextMenuEvent(self, evt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5375 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
5376 | Protected method implementing the context menu event. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5377 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5378 | @param evt the context menu event (QContextMenuEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5379 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5380 | evt.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5381 | if self.__marginNumber(evt.x()) == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5382 | self.spellingMenuPos = self.positionFromPoint(evt.pos()) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5383 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5384 | self.spellingMenuPos >= 0 and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5385 | self.spell is not None and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5386 | self.hasIndicator(self.spellingIndicator, |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5387 | self.spellingMenuPos) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5388 | ): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5389 | self.spellingMenu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5390 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5391 | self.menu.popup(evt.globalPos()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5392 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5393 | self.line = self.lineAt(evt.pos()) |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5394 | if self.__marginNumber(evt.x()) in [self.__bmMargin, |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5395 | self.__linenoMargin]: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5396 | self.bmMarginMenu.popup(evt.globalPos()) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5397 | elif self.__marginNumber(evt.x()) == self.__bpMargin: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5398 | self.bpMarginMenu.popup(evt.globalPos()) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5399 | elif self.__marginNumber(evt.x()) == self.__indicMargin: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5400 | self.indicMarginMenu.popup(evt.globalPos()) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5401 | elif self.__marginNumber(evt.x()) == self.__foldMargin: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5402 | self.foldMarginMenu.popup(evt.globalPos()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5403 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5404 | def __showContextMenu(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5405 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5406 | 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
|
5407 | """ |
3395
7e923cf9918f
Made the reopen with encoding editor context menu react upon file modification status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3394
diff
changeset
|
5408 | self.menuActs["Reopen"].setEnabled( |
7e923cf9918f
Made the reopen with encoding editor context menu react upon file modification status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3394
diff
changeset
|
5409 | not self.isModified() and bool(self.fileName)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5410 | self.menuActs["Save"].setEnabled(self.isModified()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5411 | self.menuActs["Undo"].setEnabled(self.isUndoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5412 | self.menuActs["Redo"].setEnabled(self.isRedoAvailable()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5413 | self.menuActs["Revert"].setEnabled(self.isModified()) |
6059
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
5414 | self.menuActs["Cut"].setEnabled(self.hasSelectedText()) |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
5415 | self.menuActs["Copy"].setEnabled(self.hasSelectedText()) |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
5416 | if self.menuActs["ExecuteSelection"] is not None: |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
5417 | self.menuActs["ExecuteSelection"].setEnabled( |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
5418 | self.hasSelectedText()) |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
5419 | self.menuActs["Paste"].setEnabled(self.canPaste()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5420 | if not self.isResourcesFile: |
3446
5a670e55adbb
Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3441
diff
changeset
|
5421 | if self.fileName and self.isPyFile(): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5422 | self.menuActs["Show"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5423 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5424 | self.menuActs["Show"].setEnabled(False) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5425 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5426 | self.fileName and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5427 | (self.isPyFile() or self.isRubyFile()) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5428 | ): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5429 | self.menuActs["Diagrams"].setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5430 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5431 | self.menuActs["Diagrams"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5432 | if not self.miniMenu: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5433 | if self.lexer_ is not None: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5434 | self.menuActs["Comment"].setEnabled( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5435 | self.lexer_.canBlockComment()) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5436 | self.menuActs["Uncomment"].setEnabled( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5437 | self.lexer_.canBlockComment()) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5438 | self.menuActs["StreamComment"].setEnabled( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5439 | self.lexer_.canStreamComment()) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5440 | self.menuActs["BoxComment"].setEnabled( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5441 | self.lexer_.canBoxComment()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5442 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5443 | self.menuActs["Comment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5444 | self.menuActs["Uncomment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5445 | self.menuActs["StreamComment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5446 | self.menuActs["BoxComment"].setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5447 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5448 | self.menuActs["TypingAidsEnabled"].setEnabled( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5449 | self.completer is not None) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5450 | self.menuActs["TypingAidsEnabled"].setChecked( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5451 | 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
|
5452 | |
4718
9fcb469d81ae
Fixed a few little issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
5453 | if not self.isResourcesFile: |
5897
ae17b1ae12bb
Fixed an issue related to enabling the 'Calltips' action of the editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5894
diff
changeset
|
5454 | self.menuActs["calltip"].setEnabled(self.canProvideCallTipps()) |
5911
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5909
diff
changeset
|
5455 | self.menuActs["codeInfo"].setEnabled( |
0c7bcba51391
Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5909
diff
changeset
|
5456 | self.vm.isEditorInfoSupported(self.getLanguage())) |
4153
95b18307079f
Corrected some auto-completion related terms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4142
diff
changeset
|
5457 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5458 | spellingAvailable = SpellChecker.isAvailable() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5459 | self.menuActs["SpellCheck"].setEnabled(spellingAvailable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5460 | self.menuActs["SpellCheckSelection"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5461 | spellingAvailable and self.hasSelectedText()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5462 | self.menuActs["SpellCheckRemove"].setEnabled( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5463 | spellingAvailable and self.spellingMenuPos >= 0) |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
5464 | self.menuActs["SpellCheckLanguages"].setEnabled(spellingAvailable) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5465 | |
1299
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5466 | if self.menuActs["OpenRejections"]: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5467 | if self.fileName: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5468 | rej = "{0}.rej".format(self.fileName) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5469 | self.menuActs["OpenRejections"].setEnabled(os.path.exists(rej)) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5470 | else: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5471 | self.menuActs["OpenRejections"].setEnabled(False) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5472 | |
3087
fdbce259929f
Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3069
diff
changeset
|
5473 | self.menuActs["MonospacedFont"].setEnabled(self.lexer_ is None) |
fdbce259929f
Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3069
diff
changeset
|
5474 | |
3100
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
5475 | splitOrientation = self.vm.getSplitOrientation() |
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
5476 | if splitOrientation == Qt.Horizontal: |
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
5477 | self.menuActs["NewSplit"].setIcon( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
5478 | UI.PixmapCache.getIcon("splitHorizontal")) |
3100
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
5479 | else: |
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
5480 | self.menuActs["NewSplit"].setIcon( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
5481 | UI.PixmapCache.getIcon("splitVertical")) |
3100
1c86bf655433
Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3095
diff
changeset
|
5482 | |
4376
7847a37ee71d
Little enhancement to the editor context menu to enable the Tools submenu only, if it contains some entries (populated by plug-ins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4304
diff
changeset
|
5483 | self.menuActs["Tools"].setEnabled(not self.toolsMenu.isEmpty()) |
7847a37ee71d
Little enhancement to the editor context menu to enable the Tools submenu only, if it contains some entries (populated by plug-ins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4304
diff
changeset
|
5484 | |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
5485 | self.showMenu.emit("Main", self.menu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5486 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5487 | def __showContextMenuAutocompletion(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5488 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5489 | 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
|
5490 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5491 | self.menuActs["acDynamic"].setEnabled( |
4133
3d868439dddc
Improved the handling of the various auto-completion actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4074
diff
changeset
|
5492 | self.canProvideDynamicAutoCompletion()) |
5888
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5493 | self.menuActs["acClearCache"].setEnabled( |
f23f3d2b7516
Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5887
diff
changeset
|
5494 | self.canProvideDynamicAutoCompletion()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5495 | self.menuActs["acAPI"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5496 | self.menuActs["acAPIDocument"].setEnabled(self.acAPI) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5497 | |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
5498 | self.showMenu.emit("Autocompletion", self.autocompletionMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5499 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5500 | def __showContextMenuShow(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5501 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5502 | 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
|
5503 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5504 | prEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5505 | coEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5506 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5507 | # first check if the file belongs to a project |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5508 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5509 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5510 | self.project.isProjectSource(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5511 | ): |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5512 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5513 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5514 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5515 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5516 | tbasename = os.path.splitext(tfn)[0] |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5517 | prEnable = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5518 | prEnable or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5519 | os.path.isfile("{0}.profile".format(basename)) or |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5520 | os.path.isfile("{0}.profile".format(tbasename)) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5521 | ) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
5522 | coEnable = ( |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5523 | (coEnable or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5524 | os.path.isfile("{0}.coverage".format(basename)) or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5525 | os.path.isfile("{0}.coverage".format(tbasename))) and |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
5526 | self.project.isPy3Project() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5527 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5528 | |
6285
045dc4c38701
Corrected a typo in several files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6278
diff
changeset
|
5529 | # now check ourselves |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5530 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5531 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5532 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5533 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5534 | tbasename = os.path.splitext(tfn)[0] |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5535 | prEnable = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5536 | prEnable or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5537 | os.path.isfile("{0}.profile".format(basename)) or |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5538 | os.path.isfile("{0}.profile".format(tbasename)) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5539 | ) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
5540 | coEnable = ( |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5541 | (coEnable or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5542 | os.path.isfile("{0}.coverage".format(basename)) or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5543 | os.path.isfile("{0}.coverage".format(tbasename))) and |
3496
b905cb8c520c
Enable coverage info in Python2 projects.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3484
diff
changeset
|
5544 | self.isPyFile() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5545 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5546 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5547 | # now check for syntax errors |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5548 | if self.hasSyntaxErrors(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5549 | coEnable = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5550 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5551 | self.profileMenuAct.setEnabled(prEnable) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5552 | self.coverageMenuAct.setEnabled(coEnable) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5553 | self.coverageShowAnnotationMenuAct.setEnabled( |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
5554 | coEnable and len(self.notcoveredMarkers) == 0) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5555 | self.coverageHideAnnotationMenuAct.setEnabled( |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
5556 | len(self.notcoveredMarkers) > 0) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
5557 | |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
5558 | self.showMenu.emit("Show", self.menuShow, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5559 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5560 | def __showContextMenuGraphics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5561 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5562 | Private slot handling the aboutToShow signal of the diagrams context |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5563 | menu. |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5564 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5565 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5566 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5567 | self.project.isProjectSource(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5568 | ): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5569 | self.applicationDiagramMenuAct.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5570 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5571 | self.applicationDiagramMenuAct.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5572 | |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
5573 | self.showMenu.emit("Graphics", self.graphicsMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5574 | |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5575 | def __showContextMenuMargin(self, menu): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5576 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5577 | Private slot handling the aboutToShow signal of the margins context |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5578 | menu. |
6116
f3d3c996c193
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6111
diff
changeset
|
5579 | |
f3d3c996c193
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6111
diff
changeset
|
5580 | @param menu reference to the menu to be shown |
f3d3c996c193
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6111
diff
changeset
|
5581 | @type QMenu |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5582 | """ |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5583 | if menu is self.bpMarginMenu: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5584 | supportsDebugger = bool(self.fileName and self.isPyFile()) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5585 | hasBreakpoints = bool(self.breaks) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5586 | hasBreakpoint = bool( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5587 | self.markersAtLine(self.line) & self.breakpointMask) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5588 | |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5589 | self.marginMenuActs["Breakpoint"].setEnabled(supportsDebugger) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5590 | self.marginMenuActs["TempBreakpoint"].setEnabled(supportsDebugger) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5591 | self.marginMenuActs["NextBreakpoint"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5592 | supportsDebugger and hasBreakpoints) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5593 | self.marginMenuActs["PreviousBreakpoint"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5594 | supportsDebugger and hasBreakpoints) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5595 | self.marginMenuActs["ClearBreakpoint"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5596 | supportsDebugger and hasBreakpoints) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5597 | self.marginMenuActs["EditBreakpoint"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5598 | supportsDebugger and hasBreakpoint) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5599 | self.marginMenuActs["EnableBreakpoint"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5600 | supportsDebugger and hasBreakpoint) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5601 | if supportsDebugger: |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5602 | if self.markersAtLine(self.line) & (1 << self.dbreakpoint): |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5603 | self.marginMenuActs["EnableBreakpoint"].setText( |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5604 | self.tr('Enable breakpoint')) |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5605 | else: |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5606 | self.marginMenuActs["EnableBreakpoint"].setText( |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5607 | self.tr('Disable breakpoint')) |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5608 | |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5609 | if menu is self.bmMarginMenu: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5610 | hasBookmarks = bool(self.bookmarks) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5611 | |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5612 | self.marginMenuActs["NextBookmark"].setEnabled(hasBookmarks) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5613 | self.marginMenuActs["PreviousBookmark"].setEnabled(hasBookmarks) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5614 | self.marginMenuActs["ClearBookmark"].setEnabled(hasBookmarks) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5615 | |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5616 | if menu is self.foldMarginMenu: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5617 | isFoldHeader = bool(self.SendScintilla( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5618 | QsciScintilla.SCI_GETFOLDLEVEL, self.line) & |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5619 | QsciScintilla.SC_FOLDLEVELHEADERFLAG) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5620 | |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5621 | self.marginMenuActs["ExpandChildren"].setEnabled(isFoldHeader) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5622 | self.marginMenuActs["CollapseChildren"].setEnabled(isFoldHeader) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5623 | |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5624 | if menu is self.indicMarginMenu: |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5625 | hasSyntaxErrors = bool(self.syntaxerrors) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5626 | hasWarnings = bool(self.warnings) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5627 | hasNotCoveredMarkers = bool(self.notcoveredMarkers) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5628 | |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5629 | self.marginMenuActs["GotoSyntaxError"].setEnabled(hasSyntaxErrors) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5630 | self.marginMenuActs["ClearSyntaxError"].setEnabled(hasSyntaxErrors) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5631 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5632 | hasSyntaxErrors and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5633 | self.markersAtLine(self.line) & (1 << self.syntaxerror) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5634 | ): |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5635 | self.marginMenuActs["ShowSyntaxError"].setEnabled(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5636 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5637 | self.marginMenuActs["ShowSyntaxError"].setEnabled(False) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5638 | |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5639 | self.marginMenuActs["NextWarningMarker"].setEnabled(hasWarnings) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5640 | self.marginMenuActs["PreviousWarningMarker"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5641 | hasWarnings) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5642 | self.marginMenuActs["ClearWarnings"].setEnabled(hasWarnings) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5643 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5644 | hasWarnings and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5645 | self.markersAtLine(self.line) & (1 << self.warning) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5646 | ): |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5647 | self.marginMenuActs["ShowWarning"].setEnabled(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5648 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5649 | self.marginMenuActs["ShowWarning"].setEnabled(False) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5650 | |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5651 | self.marginMenuActs["NextCoverageMarker"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5652 | hasNotCoveredMarkers) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5653 | self.marginMenuActs["PreviousCoverageMarker"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5654 | hasNotCoveredMarkers) |
6035
6cac9ce8ab15
Added an entry to delete all change markers to the marker margin context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6033
diff
changeset
|
5655 | |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5656 | self.marginMenuActs["PreviousTaskMarker"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5657 | self.__hasTaskMarkers) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5658 | self.marginMenuActs["NextTaskMarker"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5659 | self.__hasTaskMarkers) |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
5660 | |
6299
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5661 | self.marginMenuActs["PreviousChangeMarker"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5662 | self.__hasChangeMarkers) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5663 | self.marginMenuActs["NextChangeMarker"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5664 | self.__hasChangeMarkers) |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5665 | self.marginMenuActs["ClearChangeMarkers"].setEnabled( |
feb3cf2cbde3
Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6297
diff
changeset
|
5666 | self.__hasChangeMarkers) |
2162
4627e6ea7b6b
Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2084
diff
changeset
|
5667 | |
6116
f3d3c996c193
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6111
diff
changeset
|
5668 | self.showMenu.emit("Margin", menu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5669 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5670 | def __showContextMenuChecks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5671 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5672 | Private slot handling the aboutToShow signal of the checks context |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5673 | menu. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5674 | """ |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
5675 | self.showMenu.emit("Checks", self.checksMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5676 | |
3155
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
5677 | def __showContextMenuTools(self): |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
5678 | """ |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
5679 | Private slot handling the aboutToShow signal of the tools context |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
5680 | menu. |
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
5681 | """ |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
5682 | self.showMenu.emit("Tools", self.toolsMenu, self) |
3155
7e10d00e27ca
Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3152
diff
changeset
|
5683 | |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5684 | def __reopenWithEncodingMenuTriggered(self, act): |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5685 | """ |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5686 | Private method to handle the rereading of the file with a selected |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5687 | encoding. |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5688 | |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5689 | @param act reference to the action that was triggered (QAction) |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5690 | """ |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5691 | encoding = act.data() |
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5692 | self.readFile(self.fileName, encoding=encoding) |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
5693 | self.__convertTabs() |
4418
32f721a2fdc6
Fixed an issue in the editor causing the encodings menu not being synchronized after a re-open operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4411
diff
changeset
|
5694 | self.__checkEncoding() |
3394
d1d4d79b4f11
Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3393
diff
changeset
|
5695 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5696 | def __contextSave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5697 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5698 | Private slot handling the save context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5699 | """ |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
5700 | ok = self.saveFile() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5701 | if ok: |
548
ac7af05dd54a
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
547
diff
changeset
|
5702 | self.vm.setEditorName(self, self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5703 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5704 | def __contextSaveAs(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5705 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5706 | 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
|
5707 | """ |
559
ee695ebbd6e0
Fixed an issue introduced by the E5MessageBox job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
553
diff
changeset
|
5708 | ok = self.saveFileAs() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5709 | if ok: |
559
ee695ebbd6e0
Fixed an issue introduced by the E5MessageBox job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
553
diff
changeset
|
5710 | self.vm.setEditorName(self, self.fileName) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5711 | |
4402
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
5712 | def __contextSaveCopy(self): |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
5713 | """ |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
5714 | Private slot handling the save copy context menu entry. |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
5715 | """ |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
5716 | self.saveFileCopy() |
ad524553e765
Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4385
diff
changeset
|
5717 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5718 | def __contextClose(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5719 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5720 | Private slot handling the close context menu entry. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5721 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5722 | self.vm.closeEditor(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5723 | |
1299
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5724 | def __contextOpenRejections(self): |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5725 | """ |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5726 | Private slot handling the open rejections file context menu entry. |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5727 | """ |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5728 | if self.fileName: |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5729 | rej = "{0}.rej".format(self.fileName) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5730 | if os.path.exists(rej): |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5731 | self.vm.openSourceFile(rej) |
fd5d21389d2b
Added an action to the editor context menu and to the tabview and listview view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1295
diff
changeset
|
5732 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5733 | def __newView(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5734 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5735 | 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
|
5736 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5737 | self.vm.newEditorView(self.fileName, self, self.filetype) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5738 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5739 | def __newViewNewSplit(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5740 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5741 | 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
|
5742 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5743 | self.vm.addSplit() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5744 | self.vm.newEditorView(self.fileName, self, self.filetype) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5745 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5746 | def __selectAll(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5747 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5748 | 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
|
5749 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5750 | self.selectAll(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5751 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5752 | def __deselectAll(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5753 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5754 | 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
|
5755 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5756 | self.selectAll(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5757 | |
478
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5758 | def joinLines(self): |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5759 | """ |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5760 | Public slot to join the current line with the next one. |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5761 | """ |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5762 | curLine = self.getCursorPosition()[0] |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5763 | if curLine == self.lines() - 1: |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5764 | return |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5765 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5766 | line0Text = self.text(curLine) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5767 | line1Text = self.text(curLine + 1) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5768 | if line1Text in ["", "\r", "\n", "\r\n"]: |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5769 | return |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5770 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5771 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5772 | line0Text.rstrip("\r\n\\ \t").endswith(("'", '"')) and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5773 | line1Text.lstrip().startswith(("'", '"')) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5774 | ): |
2994
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5775 | # merging multi line strings |
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5776 | startChars = "\r\n\\ \t'\"" |
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5777 | endChars = " \t'\"" |
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5778 | else: |
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5779 | startChars = "\r\n\\ \t" |
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5780 | endChars = " \t" |
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5781 | |
478
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5782 | # determine start index |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5783 | startIndex = len(line0Text) |
2994
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5784 | while startIndex > 0 and line0Text[startIndex - 1] in startChars: |
478
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5785 | startIndex -= 1 |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5786 | if startIndex == 0: |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5787 | return |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5788 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5789 | # determine end index |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5790 | endIndex = 0 |
2994
5ae1349b8fb4
A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2980
diff
changeset
|
5791 | while line1Text[endIndex] in endChars: |
478
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5792 | endIndex += 1 |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5793 | |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5794 | self.setSelection(curLine, startIndex, curLine + 1, endIndex) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5795 | self.beginUndoAction() |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5796 | self.removeSelectedText() |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5797 | self.insertAt(" ", curLine, startIndex) |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5798 | self.endUndoAction() |
e7d778ea21d6
Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
461
diff
changeset
|
5799 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5800 | def shortenEmptyLines(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5801 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5802 | Public slot to compress lines consisting solely of whitespace |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5803 | characters. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5804 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5805 | searchRE = r"^[ \t]+$" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5806 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5807 | 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
|
5808 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5809 | while ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5810 | self.replaceTarget("") |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5811 | ok = self.findNextTarget() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5812 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5813 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5814 | def __autosaveEnable(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5815 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5816 | 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
|
5817 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5818 | if self.menuActs["AutosaveEnable"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5819 | self.autosaveManuallyDisabled = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5820 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5821 | self.autosaveManuallyDisabled = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5822 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5823 | def shouldAutosave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5824 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5825 | Public slot to check the autosave flags. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5826 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5827 | @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
|
5828 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5829 | return ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5830 | bool(self.fileName) and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5831 | not self.autosaveManuallyDisabled and |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
5832 | not self.isReadOnly() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5833 | ) |
2571
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2526
diff
changeset
|
5834 | |
3579
eccd12461319
BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3576
diff
changeset
|
5835 | def checkSyntax(self): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5836 | """ |
3581
03b351be4436
Einige kleinere Korrekturen.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3579
diff
changeset
|
5837 | Public method to perform an automatic syntax check of the file. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5838 | """ |
7164
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
5839 | fileType = self.filetype |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
5840 | if fileType == "MicroPython": |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
5841 | # adjustment for MicroPython |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
5842 | fileType = "Python3" |
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
5843 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5844 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5845 | self.syntaxCheckService is None or |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5846 | fileType not in self.syntaxCheckService.getLanguages() |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5847 | ): |
2571
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2526
diff
changeset
|
5848 | return |
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2526
diff
changeset
|
5849 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5850 | if Preferences.getEditor("AutoCheckSyntax"): |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
5851 | if Preferences.getEditor("OnlineSyntaxCheck"): |
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
5852 | self.__onlineSyntaxCheckTimer.stop() |
3173
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5853 | |
3241
957673fc463a
Interface for adding different languages to the syntax check, background service
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3177
diff
changeset
|
5854 | self.syntaxCheckService.syntaxCheck( |
7164
6da6a0a5a448
Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6996
diff
changeset
|
5855 | fileType, self.fileName or "(Unnamed)", self.text()) |
2571
e6bb19eb87ea
Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2526
diff
changeset
|
5856 | |
4503
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5857 | def __processSyntaxCheckError(self, fn, msg): |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5858 | """ |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5859 | Private slot to report an error message of a syntax check. |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5860 | |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5861 | @param fn filename of the file |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5862 | @type str |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5863 | @param msg error message |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5864 | @type str |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5865 | """ |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5866 | if fn != self.fileName and ( |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
5867 | bool(self.fileName) or fn != "(Unnamed)"): |
4503
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5868 | return |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5869 | |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5870 | self.clearSyntaxError() |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5871 | self.clearFlakesWarnings() |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5872 | |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5873 | self.toggleWarning(0, 0, True, msg) |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5874 | |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5875 | self.updateVerticalScrollBar() |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5876 | |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5877 | def __processSyntaxCheckResult(self, fn, problems): |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5878 | """ |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
5879 | Private slot to report the resulting messages of a syntax check. |
3173
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5880 | |
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5881 | @param fn filename of the checked file (str) |
3412
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5882 | @param problems dictionary with the keys 'error' and 'warnings' which |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5883 | hold a list containing details about the error/ warnings |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5884 | (file name, line number, column, codestring (only at syntax |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5885 | errors), the message) (dict) |
3173
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5886 | """ |
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5887 | # Check if it's the requested file, otherwise ignore signal |
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5888 | if fn != self.fileName and ( |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
5889 | bool(self.fileName) or fn != "(Unnamed)"): |
3173
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5890 | return |
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5891 | |
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5892 | self.clearSyntaxError() |
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5893 | self.clearFlakesWarnings() |
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
5894 | |
3412
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5895 | error = problems.get('error') |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5896 | if error: |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5897 | _fn, lineno, col, code, msg = error |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5898 | self.toggleSyntaxError(lineno, col, True, msg) |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5899 | |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5900 | warnings = problems.get('warnings', []) |
6188
5a6ae3be31e6
Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6119
diff
changeset
|
5901 | for _fn, lineno, col, _code, msg in warnings: |
3412
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5902 | self.toggleWarning(lineno, col, True, msg) |
4433
7ab862396a8a
Workaround for missing lines at vertical scroll bar caused by annotations.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4418
diff
changeset
|
5903 | |
7ab862396a8a
Workaround for missing lines at vertical scroll bar caused by annotations.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4418
diff
changeset
|
5904 | self.updateVerticalScrollBar() |
3412
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
5905 | |
1353
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5906 | def __initOnlineSyntaxCheck(self): |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5907 | """ |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5908 | Private slot to initialize the online syntax check. |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5909 | """ |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5910 | self.__onlineSyntaxCheckTimer = QTimer(self) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5911 | self.__onlineSyntaxCheckTimer.setSingleShot(True) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5912 | self.__onlineSyntaxCheckTimer.setInterval( |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5913 | Preferences.getEditor("OnlineSyntaxCheckInterval") * 1000) |
3579
eccd12461319
BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3576
diff
changeset
|
5914 | self.__onlineSyntaxCheckTimer.timeout.connect(self.checkSyntax) |
1353
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5915 | self.textChanged.connect(self.__resetOnlineSyntaxCheckTimer) |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5916 | |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5917 | def __resetOnlineSyntaxCheckTimer(self): |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5918 | """ |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5919 | Private method to reset the online syntax check timer. |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5920 | """ |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5921 | if Preferences.getEditor("OnlineSyntaxCheck"): |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5922 | self.__onlineSyntaxCheckTimer.stop() |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5923 | self.__onlineSyntaxCheckTimer.start() |
e1c0af081a8e
Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1308
diff
changeset
|
5924 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5925 | def __showCodeMetrics(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5926 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5927 | 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
|
5928 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5929 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5930 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5931 | |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
5932 | from DataViews.CodeMetricsDialog import CodeMetricsDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5933 | self.codemetrics = CodeMetricsDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5934 | self.codemetrics.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5935 | self.codemetrics.start(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5936 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5937 | def __getCodeCoverageFile(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5938 | """ |
5051
3586ebd9fac8
Updated coverage.py to version 4.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
5939 | Private method to get the file name of the file containing coverage |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
5940 | info. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5941 | |
5051
3586ebd9fac8
Updated coverage.py to version 4.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
5942 | @return file name of the coverage file (string) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5943 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5944 | files = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5945 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5946 | # 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
|
5947 | # a project coverage file |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5948 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5949 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5950 | self.project.isProjectSource(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
5951 | ): |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
5952 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5953 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5954 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5955 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5956 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5957 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5958 | f = "{0}.coverage".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5959 | tf = "{0}.coverage".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5960 | if os.path.isfile(f): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5961 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5962 | if os.path.isfile(tf): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5963 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5964 | |
6285
045dc4c38701
Corrected a typo in several files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6278
diff
changeset
|
5965 | # now check, if there are coverage files belonging to ourselves |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5966 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5967 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5968 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5969 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5970 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5971 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5972 | f = "{0}.coverage".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
5973 | tf = "{0}.coverage".format(tbasename) |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
5974 | if os.path.isfile(f) and f not in files: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5975 | files.append(f) |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
5976 | if os.path.isfile(tf) and tf not in files: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5977 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5978 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5979 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5980 | if len(files) > 1: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
5981 | fn, ok = QInputDialog.getItem( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5982 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
5983 | self.tr("Code Coverage"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
5984 | self.tr("Please select a coverage file"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5985 | files, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5986 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5987 | if not ok: |
6891
93f82da09f22
Fixed some code style issues detected by the new 'return' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6858
diff
changeset
|
5988 | return "" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5989 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5990 | fn = files[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5991 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5992 | fn = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5993 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5994 | return fn |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5995 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5996 | def __showCodeCoverage(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5997 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
5998 | 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
|
5999 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6000 | fn = self.__getCodeCoverageFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6001 | if fn: |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
6002 | from DataViews.PyCoverageDialog import PyCoverageDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6003 | self.codecoverage = PyCoverageDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6004 | self.codecoverage.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6005 | self.codecoverage.start(fn, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6006 | |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6007 | def refreshCoverageAnnotations(self): |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6008 | """ |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6009 | Public method to refresh the code coverage annotations. |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6010 | """ |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6011 | if self.showingNotcoveredMarkers: |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6012 | self.codeCoverageShowAnnotations(silent=True) |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6013 | |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6014 | def codeCoverageShowAnnotations(self, silent=False): |
2163
2b02339f52bf
Enhanced the code coverage dialog functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2162
diff
changeset
|
6015 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6016 | Public method to handle the show code coverage annotations context |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6017 | menu action. |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6018 | |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6019 | @param silent flag indicating to not show any dialog (boolean) |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6020 | """ |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6021 | self.__codeCoverageHideAnnotations() |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6022 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6023 | fn = self.__getCodeCoverageFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6024 | if fn: |
5051
3586ebd9fac8
Updated coverage.py to version 4.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
6025 | from coverage import Coverage |
3586ebd9fac8
Updated coverage.py to version 4.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4917
diff
changeset
|
6026 | cover = Coverage(data_file=fn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6027 | cover.load() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6028 | missing = cover.analysis2(self.fileName)[3] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6029 | if missing: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6030 | for line in missing: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6031 | handle = self.markerAdd(line - 1, self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6032 | self.notcoveredMarkers.append(handle) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
6033 | self.coverageMarkersShown.emit(True) |
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
6034 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6035 | else: |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6036 | if not silent: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6037 | E5MessageBox.information( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6038 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6039 | self.tr("Show Code Coverage Annotations"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6040 | self.tr("""All lines have been covered.""")) |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6041 | self.showingNotcoveredMarkers = True |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6042 | else: |
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6043 | if not silent: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6044 | E5MessageBox.warning( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6045 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6046 | self.tr("Show Code Coverage Annotations"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6047 | self.tr("""There is no coverage file available.""")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6048 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6049 | def __codeCoverageHideAnnotations(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6050 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6051 | Private method to handle the hide code coverage annotations context |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6052 | menu action. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6053 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6054 | for handle in self.notcoveredMarkers: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6055 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6056 | self.notcoveredMarkers = [] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6057 | self.coverageMarkersShown.emit(False) |
2391
f9a6a512bc1e
Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
6058 | self.showingNotcoveredMarkers = False |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
6059 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6060 | |
3325
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6061 | def getCoverageLines(self): |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6062 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6063 | Public method to get the lines containing a coverage marker. |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6064 | |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6065 | @return list of lines containing a coverage marker (list of integer) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6066 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6067 | lines = [] |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6068 | line = -1 |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6069 | while True: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6070 | line = self.markerFindNext(line + 1, 1 << self.notcovered) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6071 | if line < 0: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6072 | break |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6073 | else: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6074 | lines.append(line) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6075 | return lines |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6076 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6077 | def hasCoverageMarkers(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6078 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6079 | Public method to test, if there are coverage markers. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
6080 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
6081 | @return flag indicating the presence of coverage markers (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6082 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6083 | return len(self.notcoveredMarkers) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6084 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6085 | def nextUncovered(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6086 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6087 | 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
|
6088 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6089 | line, index = self.getCursorPosition() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6090 | if line == self.lines() - 1: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6091 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6092 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6093 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6094 | ucline = self.markerFindNext(line, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6095 | if ucline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6096 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6097 | ucline = self.markerFindNext(0, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6098 | if ucline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6099 | self.setCursorPosition(ucline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6100 | self.ensureLineVisible(ucline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6101 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6102 | def previousUncovered(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6103 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6104 | 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
|
6105 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6106 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6107 | if line == 0: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6108 | line = self.lines() - 1 |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6109 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6110 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6111 | ucline = self.markerFindPrevious(line, 1 << self.notcovered) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6112 | if ucline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6113 | # wrap around |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6114 | ucline = self.markerFindPrevious( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6115 | self.lines() - 1, 1 << self.notcovered) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6116 | if ucline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6117 | self.setCursorPosition(ucline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6118 | self.ensureLineVisible(ucline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6119 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6120 | def __showProfileData(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6121 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6122 | 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
|
6123 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6124 | files = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6125 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6126 | # 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
|
6127 | # a project profile file |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6128 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6129 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6130 | self.project.isProjectSource(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6131 | ): |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
6132 | fn = self.project.getMainScript(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6133 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6134 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6135 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6136 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6137 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
6138 | f = "{0}.profile".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
6139 | tf = "{0}.profile".format(tbasename) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6140 | if os.path.isfile(f): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6141 | files.append(f) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6142 | if os.path.isfile(tf): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6143 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6144 | |
6285
045dc4c38701
Corrected a typo in several files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6278
diff
changeset
|
6145 | # now check, if there are profile files belonging to ourselves |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6146 | fn = self.getFileName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6147 | if fn is not None: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6148 | tfn = Utilities.getTestFileName(fn) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6149 | basename = os.path.splitext(fn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6150 | tbasename = os.path.splitext(tfn)[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6151 | |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
6152 | f = "{0}.profile".format(basename) |
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
6153 | tf = "{0}.profile".format(tbasename) |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
6154 | if os.path.isfile(f) and f not in files: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6155 | files.append(f) |
3621
15f23ed3f216
Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3591
diff
changeset
|
6156 | if os.path.isfile(tf) and tf not in files: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6157 | files.append(tf) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6158 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6159 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6160 | if len(files) > 1: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
6161 | fn, ok = QInputDialog.getItem( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6162 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6163 | self.tr("Profile Data"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6164 | self.tr("Please select a profile file"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6165 | files, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6166 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6167 | if not ok: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6168 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6169 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6170 | fn = files[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6171 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6172 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6173 | |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
6174 | from DataViews.PyProfileDialog import PyProfileDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6175 | self.profiledata = PyProfileDialog() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6176 | self.profiledata.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6177 | self.profiledata.start(fn, self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6178 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6179 | def __lmBbookmarks(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6180 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6181 | Private method to handle the 'LMB toggles bookmark' context menu |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6182 | action. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6183 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6184 | self.marginMenuActs["LMBbookmarks"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6185 | self.marginMenuActs["LMBbreakpoints"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6186 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6187 | def __lmBbreakpoints(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6188 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6189 | Private method to handle the 'LMB toggles breakpoint' context menu |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6190 | action. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6191 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6192 | self.marginMenuActs["LMBbookmarks"].setChecked(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6193 | self.marginMenuActs["LMBbreakpoints"].setChecked(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6194 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6195 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6196 | ## Syntax error handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6197 | ########################################################################### |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6198 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6199 | def toggleSyntaxError(self, line, index, error, msg="", show=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6200 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6201 | Public method to toggle a syntax error indicator. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6202 | |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6203 | @param line line number of the syntax error (integer) |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6204 | @param index index number of the syntax error (integer) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6205 | @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
|
6206 | set or deleted (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6207 | @param msg error message (string) |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6208 | @keyparam show flag indicating to set the cursor to the error position |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6209 | (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6210 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6211 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6212 | line = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6213 | # 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
|
6214 | if error: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6215 | # set a new syntax error marker |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6216 | markers = self.markersAtLine(line - 1) |
3441
1b07f996e9ee
Continued improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3438
diff
changeset
|
6217 | index += self.indentation(line - 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6218 | if not (markers & (1 << self.syntaxerror)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6219 | handle = self.markerAdd(line - 1, self.syntaxerror) |
2904
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6220 | self.syntaxerrors[handle] = [(msg, index)] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6221 | self.syntaxerrorToggled.emit(self) |
2904
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6222 | else: |
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6223 | for handle in list(self.syntaxerrors.keys()): |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6224 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6225 | self.markerLine(handle) == line - 1 and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6226 | (msg, index) not in self.syntaxerrors[handle] |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6227 | ): |
2904
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6228 | self.syntaxerrors[handle].append((msg, index)) |
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6229 | if show: |
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6230 | self.setCursorPosition(line - 1, index) |
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6231 | self.ensureLineVisible(line - 1) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6232 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6233 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6234 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6235 | del self.syntaxerrors[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6236 | self.markerDeleteHandle(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6237 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6238 | |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6239 | self.__setAnnotation(line - 1) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
6240 | self.__markerMap.update() |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6241 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6242 | def getSyntaxErrors(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6243 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6244 | Public method to retrieve the syntax error markers. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6245 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6246 | @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
|
6247 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6248 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6249 | selist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6250 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6251 | selist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6252 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6253 | selist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6254 | return selist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6255 | |
3325
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6256 | def getSyntaxErrorLines(self): |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6257 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6258 | Public method to get the lines containing a syntax error. |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6259 | |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6260 | @return list of lines containing a syntax error (list of integer) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6261 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6262 | lines = [] |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6263 | line = -1 |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6264 | while True: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6265 | line = self.markerFindNext(line + 1, 1 << self.syntaxerror) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6266 | if line < 0: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6267 | break |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6268 | else: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6269 | lines.append(line) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6270 | return lines |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6271 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6272 | def hasSyntaxErrors(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6273 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6274 | 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
|
6275 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6276 | @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
|
6277 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6278 | return len(self.syntaxerrors) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6279 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6280 | def gotoSyntaxError(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6281 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6282 | Public slot to handle the 'Goto syntax error' context menu action. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6283 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6284 | seline = self.markerFindNext(0, 1 << self.syntaxerror) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6285 | if seline >= 0: |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6286 | index = 0 |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6287 | for handle in self.syntaxerrors.keys(): |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6288 | if self.markerLine(handle) == seline: |
2904
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6289 | index = self.syntaxerrors[handle][0][1] |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6290 | self.setCursorPosition(seline, index) |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6291 | self.ensureLineVisible(seline) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6292 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6293 | def clearSyntaxError(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6294 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6295 | 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
|
6296 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6297 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6298 | line = self.markerLine(handle) + 1 |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6299 | self.toggleSyntaxError(line, 0, False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6300 | |
3149
e98100461710
Fixed an issue in the editor related to resetting a syntax error marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3100
diff
changeset
|
6301 | self.syntaxerrors = {} |
e98100461710
Fixed an issue in the editor related to resetting a syntax error marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3100
diff
changeset
|
6302 | self.syntaxerrorToggled.emit(self) |
e98100461710
Fixed an issue in the editor related to resetting a syntax error marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3100
diff
changeset
|
6303 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6304 | def __showSyntaxError(self, line=-1): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6305 | """ |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6306 | Private slot to handle the 'Show syntax error message' |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
6307 | context menu action. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6308 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6309 | @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
|
6310 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6311 | if line == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6312 | line = self.line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6313 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6314 | for handle in list(self.syntaxerrors.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6315 | if self.markerLine(handle) == line: |
2904
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6316 | errors = [e[0] for e in self.syntaxerrors[handle]] |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6317 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6318 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6319 | self.tr("Syntax Error"), |
2904
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6320 | "\n".join(errors)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6321 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6322 | else: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6323 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6324 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6325 | self.tr("Syntax Error"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6326 | self.tr("No syntax error message available.")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6327 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6328 | ########################################################################### |
6111
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6329 | ## VCS conflict marker handling methods below |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6330 | ########################################################################### |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6331 | |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6332 | def getVcsConflictMarkerLines(self): |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6333 | """ |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6334 | Public method to determine the lines containing a VCS conflict marker. |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6335 | |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6336 | @return list of line numbers containg a VCS conflict marker |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6337 | @rtype list of int |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6338 | """ |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6339 | conflictMarkerLines = [] |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6340 | |
6571
feb72cfc7807
Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6498
diff
changeset
|
6341 | regExp = re.compile("|".join(Editor.VcsConflictMarkerLineRegExpList), |
feb72cfc7807
Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6498
diff
changeset
|
6342 | re.MULTILINE) |
feb72cfc7807
Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6498
diff
changeset
|
6343 | matches = [m for m in regExp.finditer(self.text())] |
feb72cfc7807
Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6498
diff
changeset
|
6344 | for match in matches: |
feb72cfc7807
Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6498
diff
changeset
|
6345 | line, _ = self.lineIndexFromPosition(match.start()) |
feb72cfc7807
Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6498
diff
changeset
|
6346 | conflictMarkerLines.append(line) |
6111
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6347 | |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6348 | return conflictMarkerLines |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6349 | |
d38b38117d83
Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6105
diff
changeset
|
6350 | ########################################################################### |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6351 | ## Warning handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6352 | ########################################################################### |
2904
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6353 | |
3412
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
6354 | def toggleWarning( |
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
6355 | self, line, col, warning, msg="", warningType=WarningCode): |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6356 | """ |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6357 | Public method to toggle a warning indicator. |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6358 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6359 | Note: This method is used to set pyflakes and code style warnings. |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6360 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6361 | @param line line number of the warning |
3412
9364dab2d472
Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3241
diff
changeset
|
6362 | @param col column of the warning |
832
eb5ff61f927b
Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
826
diff
changeset
|
6363 | @param warning flag indicating if the warning marker should be |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6364 | set or deleted (boolean) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6365 | @param msg warning message (string) |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6366 | @keyparam warningType type of warning message (integer) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6367 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6368 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6369 | line = 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6370 | # 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
|
6371 | if warning: |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6372 | # set/amend a new warning marker |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6373 | warn = (msg, warningType) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6374 | markers = self.markersAtLine(line - 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6375 | if not (markers & (1 << self.warning)): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6376 | handle = self.markerAdd(line - 1, self.warning) |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6377 | self.warnings[handle] = [warn] |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6378 | self.syntaxerrorToggled.emit(self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6379 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6380 | for handle in list(self.warnings.keys()): |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6381 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6382 | self.markerLine(handle) == line - 1 and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6383 | warn not in self.warnings[handle] |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6384 | ): |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6385 | self.warnings[handle].append(warn) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6386 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6387 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6388 | if self.markerLine(handle) == line - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6389 | del self.warnings[handle] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6390 | self.markerDeleteHandle(handle) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6391 | self.syntaxerrorToggled.emit(self) |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6392 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6393 | self.__setAnnotation(line - 1) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
6394 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6395 | |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6396 | def getWarnings(self): |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6397 | """ |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6398 | Public method to retrieve the warning markers. |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6399 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6400 | @return sorted list of all lines containing a warning |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6401 | (list of integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6402 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6403 | fwlist = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6404 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6405 | fwlist.append(self.markerLine(handle) + 1) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6406 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6407 | fwlist.sort() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6408 | return fwlist |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6409 | |
3325
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6410 | def getWarningLines(self): |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6411 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6412 | Public method to get the lines containing a warning. |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6413 | |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6414 | @return list of lines containing a warning (list of integer) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6415 | """ |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6416 | lines = [] |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6417 | line = -1 |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6418 | while True: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6419 | line = self.markerFindNext(line + 1, 1 << self.warning) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6420 | if line < 0: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6421 | break |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6422 | else: |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6423 | lines.append(line) |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6424 | return lines |
d2d6dda86d32
Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3261
diff
changeset
|
6425 | |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6426 | def hasWarnings(self): |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6427 | """ |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6428 | Public method to check for the presence of warnings. |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6429 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6430 | @return flag indicating the presence of warnings (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6431 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6432 | return len(self.warnings) > 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6433 | |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6434 | def nextWarning(self): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6435 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6436 | 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
|
6437 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6438 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6439 | if line == self.lines() - 1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6440 | line = 0 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6441 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6442 | line += 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6443 | fwline = self.markerFindNext(line, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6444 | if fwline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6445 | # wrap around |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6446 | fwline = self.markerFindNext(0, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6447 | if fwline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6448 | self.setCursorPosition(fwline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6449 | self.ensureLineVisible(fwline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6450 | |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6451 | def previousWarning(self): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6452 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6453 | 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
|
6454 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6455 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6456 | if line == 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6457 | line = self.lines() - 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6458 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6459 | line -= 1 |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6460 | fwline = self.markerFindPrevious(line, 1 << self.warning) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6461 | if fwline < 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6462 | # wrap around |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6463 | fwline = self.markerFindPrevious( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6464 | self.lines() - 1, 1 << self.warning) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6465 | if fwline >= 0: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6466 | self.setCursorPosition(fwline, 0) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6467 | self.ensureLineVisible(fwline) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6468 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6469 | def clearFlakesWarnings(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6470 | """ |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6471 | Public slot to clear all pyflakes warnings. |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6472 | """ |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6473 | self.__clearTypedWarning(Editor.WarningCode) |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6474 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6475 | def clearStyleWarnings(self): |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6476 | """ |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6477 | Public slot to clear all style warnings. |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6478 | """ |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6479 | self.__clearTypedWarning(Editor.WarningStyle) |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6480 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6481 | def __clearTypedWarning(self, warningKind): |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6482 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
6483 | Private method to clear warnings of a specific kind. |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6484 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6485 | @param warningKind kind of warning to clear (Editor.WarningCode, |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6486 | Editor.WarningStyle) |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6487 | """ |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6488 | for handle in list(self.warnings.keys()): |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6489 | warnings = [] |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6490 | for msg, warningType in self.warnings[handle]: |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6491 | if warningType == warningKind: |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6492 | continue |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6493 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6494 | warnings.append((msg, warningType)) |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6495 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6496 | if warnings: |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6497 | self.warnings[handle] = warnings |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6498 | self.__setAnnotation(self.markerLine(handle)) |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6499 | else: |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6500 | del self.warnings[handle] |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6501 | self.__setAnnotation(self.markerLine(handle)) |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6502 | self.markerDeleteHandle(handle) |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6503 | self.syntaxerrorToggled.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
6504 | self.__markerMap.update() |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6505 | |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6506 | def clearWarnings(self): |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6507 | """ |
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6508 | Public slot to clear all warnings. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6509 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6510 | for handle in self.warnings: |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6511 | self.warnings[handle] = [] |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6512 | self.__setAnnotation(self.markerLine(handle)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6513 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6514 | self.warnings = {} |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6515 | self.syntaxerrorToggled.emit(self) |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
6516 | self.__markerMap.update() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6517 | |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6518 | def __showWarning(self, line=-1): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6519 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6520 | 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
|
6521 | |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6522 | @param line line number to show the warning for (integer) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6523 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6524 | if line == -1: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6525 | line = self.line |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6526 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6527 | for handle in list(self.warnings.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6528 | if self.markerLine(handle) == line: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6529 | E5MessageBox.warning( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6530 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6531 | self.tr("Warning"), |
2955
e9aeafe80329
Fixed an issue in the editor showing warning messages via the margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2926
diff
changeset
|
6532 | '\n'.join([w[0] for w in self.warnings[handle]])) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6533 | break |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6534 | else: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6535 | E5MessageBox.warning( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6536 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6537 | self.tr("Warning"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6538 | self.tr("No warning messages available.")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6539 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6540 | ########################################################################### |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6541 | ## Annotation handling methods below |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6542 | ########################################################################### |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6543 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6544 | def __setAnnotationStyles(self): |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6545 | """ |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6546 | Private slot to define the style used by inline annotations. |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6547 | """ |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6548 | if hasattr(QsciScintilla, "annotate"): |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6549 | self.annotationWarningStyle = ( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6550 | QsciScintilla.STYLE_LASTPREDEFINED + 1 |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6551 | ) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6552 | self.SendScintilla( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6553 | QsciScintilla.SCI_STYLESETFORE, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6554 | self.annotationWarningStyle, |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6555 | Preferences.getEditorColour("AnnotationsWarningForeground")) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6556 | self.SendScintilla( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6557 | QsciScintilla.SCI_STYLESETBACK, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6558 | self.annotationWarningStyle, |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6559 | Preferences.getEditorColour("AnnotationsWarningBackground")) |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6560 | |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6561 | self.annotationErrorStyle = self.annotationWarningStyle + 1 |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6562 | self.SendScintilla( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6563 | QsciScintilla.SCI_STYLESETFORE, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6564 | self.annotationErrorStyle, |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6565 | Preferences.getEditorColour("AnnotationsErrorForeground")) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6566 | self.SendScintilla( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6567 | QsciScintilla.SCI_STYLESETBACK, |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6568 | self.annotationErrorStyle, |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6569 | Preferences.getEditorColour("AnnotationsErrorBackground")) |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6570 | |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6571 | self.annotationStyleStyle = self.annotationErrorStyle + 1 |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6572 | self.SendScintilla( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6573 | QsciScintilla.SCI_STYLESETFORE, |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6574 | self.annotationStyleStyle, |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6575 | Preferences.getEditorColour("AnnotationsStyleForeground")) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6576 | self.SendScintilla( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6577 | QsciScintilla.SCI_STYLESETBACK, |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6578 | self.annotationStyleStyle, |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6579 | Preferences.getEditorColour("AnnotationsStyleBackground")) |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6580 | |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6581 | def __setAnnotation(self, line): |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6582 | """ |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6583 | Private method to set the annotations for the given line. |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6584 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6585 | @param line number of the line that needs annotation (integer) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6586 | """ |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6587 | if hasattr(QsciScintilla, "annotate"): |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6588 | warningAnnotations = [] |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6589 | errorAnnotations = [] |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6590 | styleAnnotations = [] |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6591 | |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6592 | # step 1: do warnings |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6593 | for handle in self.warnings.keys(): |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6594 | if self.markerLine(handle) == line: |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6595 | for msg, warningType in self.warnings[handle]: |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6596 | if warningType == self.WarningStyle: |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6597 | styleAnnotations.append( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6598 | self.tr("Style: {0}").format(msg)) |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6599 | else: |
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6600 | warningAnnotations.append( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6601 | self.tr("Warning: {0}").format(msg)) |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6602 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6603 | # step 2: do syntax errors |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
6604 | for handle in self.syntaxerrors.keys(): |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6605 | if self.markerLine(handle) == line: |
2904
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6606 | for msg, _ in self.syntaxerrors[handle]: |
1da821da961e
Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2900
diff
changeset
|
6607 | errorAnnotations.append( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6608 | self.tr("Error: {0}").format(msg)) |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6609 | |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6610 | annotations = [] |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
6611 | if styleAnnotations: |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6612 | annotationStyleTxt = "\n".join(styleAnnotations) |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
6613 | if warningAnnotations or errorAnnotations: |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6614 | annotationStyleTxt += "\n" |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
6615 | annotations.append(QsciStyledText( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
6616 | annotationStyleTxt, self.annotationStyleStyle)) |
2905
a1ae4b297bc0
Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2904
diff
changeset
|
6617 | |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
6618 | if warningAnnotations: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6619 | annotationWarningTxt = "\n".join(warningAnnotations) |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
6620 | if errorAnnotations: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6621 | annotationWarningTxt += "\n" |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
6622 | annotations.append(QsciStyledText( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
6623 | annotationWarningTxt, self.annotationWarningStyle)) |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6624 | |
2959
86ad8854361b
Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2955
diff
changeset
|
6625 | if errorAnnotations: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6626 | annotationErrorTxt = "\n".join(errorAnnotations) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
6627 | annotations.append(QsciStyledText( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
6628 | annotationErrorTxt, self.annotationErrorStyle)) |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6629 | |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6630 | if annotations: |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6631 | self.annotate(line, annotations) |
726
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6632 | else: |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6633 | self.clearAnnotations(line) |
57d1efea16e0
Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
723
diff
changeset
|
6634 | |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6635 | def __refreshAnnotations(self): |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6636 | """ |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6637 | Private method to refresh the annotations. |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6638 | """ |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6639 | if hasattr(QsciScintilla, "annotate"): |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6640 | self.clearAnnotations() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6641 | for handle in ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6642 | list(self.warnings.keys()) + |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6643 | list(self.syntaxerrors.keys()) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6644 | ): |
728
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6645 | line = self.markerLine(handle) |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6646 | self.__setAnnotation(line) |
3ee110082fb7
Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
726
diff
changeset
|
6647 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6648 | ################################################################# |
6297
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6649 | ## Fold handling methods |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6650 | ################################################################# |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6651 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6652 | def toggleCurrentFold(self): |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6653 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6654 | Public slot to toggle the fold containing the current line. |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6655 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6656 | line, index = self.getCursorPosition() |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6657 | self.foldLine(line) |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6658 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6659 | def expandFoldWithChildren(self, line=-1): |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6660 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6661 | Public slot to expand the current fold including its children. |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6662 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6663 | @param line number of line to be expanded |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6664 | @type int |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6665 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6666 | if line == -1: |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6667 | line, index = self.getCursorPosition() |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6668 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6669 | self.SendScintilla(QsciScintilla.SCI_FOLDCHILDREN, line, |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6670 | QsciScintilla.SC_FOLDACTION_EXPAND) |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6671 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6672 | def collapseFoldWithChildren(self, line=-1): |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6673 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6674 | Public slot to collapse the current fold including its children. |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6675 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6676 | @param line number of line to be expanded |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6677 | @type int |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6678 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6679 | if line == -1: |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6680 | line, index = self.getCursorPosition() |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6681 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6682 | self.SendScintilla(QsciScintilla.SCI_FOLDCHILDREN, line, |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6683 | QsciScintilla.SC_FOLDACTION_CONTRACT) |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6684 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6685 | def __contextMenuExpandFoldWithChildren(self): |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6686 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6687 | Private slot to handle the context menu expand with children action. |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6688 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6689 | self.expandFoldWithChildren(self.line) |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6690 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6691 | def __contextMenuCollapseFoldWithChildren(self): |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6692 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6693 | Private slot to handle the context menu collapse with children action. |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6694 | """ |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6695 | self.collapseFoldWithChildren(self.line) |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6696 | |
85e20e9b4d55
Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6285
diff
changeset
|
6697 | ################################################################# |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6698 | ## Macro handling methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6699 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6700 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6701 | def __getMacroName(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6702 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6703 | 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
|
6704 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6705 | @return Tuple of macro name and a flag, indicating, if the user |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6706 | pressed ok or canceled the operation. (string, boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6707 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6708 | qs = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6709 | for s in list(self.macros.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6710 | qs.append(s) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6711 | qs.sort() |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
6712 | return QInputDialog.getItem( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6713 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6714 | self.tr("Macro Name"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6715 | self.tr("Select a macro name:"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6716 | qs, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6717 | 0, False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6718 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6719 | def macroRun(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6720 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6721 | Public method to execute a macro. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6722 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6723 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6724 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6725 | self.macros[name].play() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6726 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6727 | def macroDelete(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6728 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6729 | Public method to delete a macro. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6730 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6731 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6732 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6733 | del self.macros[name] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6734 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6735 | def macroLoad(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6736 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6737 | 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
|
6738 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6739 | configDir = Utilities.getConfigDir() |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
6740 | fname = E5FileDialog.getOpenFileName( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6741 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6742 | self.tr("Load macro file"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6743 | configDir, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6744 | self.tr("Macro files (*.macro)")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6745 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6746 | if not fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6747 | return # user aborted |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6748 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6749 | try: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6750 | f = open(fname, "r", encoding="utf-8") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6751 | lines = f.readlines() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6752 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6753 | except IOError: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6754 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6755 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6756 | self.tr("Error loading macro"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6757 | self.tr( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6758 | "<p>The macro file <b>{0}</b> could not be read.</p>") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
6759 | .format(fname)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6760 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6761 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6762 | if len(lines) != 2: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6763 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6764 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6765 | self.tr("Error loading macro"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6766 | self.tr("<p>The macro file <b>{0}</b> is corrupt.</p>") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
6767 | .format(fname)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6768 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6769 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6770 | macro = QsciMacro(lines[1], self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6771 | self.macros[lines[0].strip()] = macro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6772 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6773 | def macroSave(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6774 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6775 | 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
|
6776 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6777 | configDir = Utilities.getConfigDir() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6778 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6779 | name, ok = self.__getMacroName() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6780 | if not ok or not name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6781 | return # user abort |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6782 | |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
6783 | fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6784 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6785 | self.tr("Save macro file"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6786 | configDir, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6787 | self.tr("Macro files (*.macro)"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6788 | "", |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
6789 | E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6790 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6791 | if not fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6792 | return # user aborted |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6793 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6794 | ext = QFileInfo(fname).suffix() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6795 | if not ext: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6796 | ex = selectedFilter.split("(*")[1].split(")")[0] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6797 | if ex: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6798 | fname += ex |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6799 | if QFileInfo(fname).exists(): |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6800 | res = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6801 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6802 | self.tr("Save macro"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6803 | self.tr("<p>The macro file <b>{0}</b> already exists." |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6804 | " Overwrite it?</p>").format(fname), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6805 | icon=E5MessageBox.Warning) |
546
c3e7bf5648be
Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
542
diff
changeset
|
6806 | if not res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6807 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6808 | fname = Utilities.toNativeSeparators(fname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6809 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6810 | try: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6811 | f = open(fname, "w", encoding="utf-8") |
429
dcc623c99907
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
6812 | f.write("{0}{1}".format(name, "\n")) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6813 | f.write(self.macros[name].save()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6814 | f.close() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6815 | except IOError: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6816 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6817 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6818 | self.tr("Error saving macro"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6819 | self.tr( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6820 | "<p>The macro file <b>{0}</b> could not be written.</p>") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
6821 | .format(fname)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6822 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6823 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6824 | def macroRecordingStart(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6825 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6826 | Public method to start macro recording. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6827 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6828 | if self.recording: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6829 | res = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6830 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6831 | self.tr("Start Macro Recording"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6832 | self.tr("Macro recording is already active. Start new?"), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6833 | icon=E5MessageBox.Warning, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6834 | yesDefault=True) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
6835 | if res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6836 | self.macroRecordingStop() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6837 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6838 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6839 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6840 | self.recording = True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6841 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6842 | self.curMacro = QsciMacro(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6843 | self.curMacro.startRecording() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6844 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6845 | def macroRecordingStop(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6846 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6847 | Public method to stop macro recording. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6848 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6849 | if not self.recording: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6850 | return # we are not recording |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6851 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6852 | self.curMacro.endRecording() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6853 | self.recording = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6854 | |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
6855 | name, ok = QInputDialog.getText( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6856 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6857 | self.tr("Macro Recording"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6858 | self.tr("Enter name of the macro:"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6859 | QLineEdit.Normal) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6860 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6861 | if ok and name: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6862 | self.macros[name] = self.curMacro |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6863 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6864 | self.curMacro = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6865 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6866 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6867 | ## Overwritten methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6868 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6869 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6870 | def undo(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6871 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6872 | Public method to undo the last recorded change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6873 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
6874 | super(Editor, self).undo() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6875 | self.undoAvailable.emit(self.isUndoAvailable()) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6876 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6877 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6878 | def redo(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6879 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6880 | Public method to redo the last recorded change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6881 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
6882 | super(Editor, self).redo() |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6883 | self.undoAvailable.emit(self.isUndoAvailable()) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
6884 | self.redoAvailable.emit(self.isRedoAvailable()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6885 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6886 | def close(self, alsoDelete=False): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6887 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6888 | Public method called when the window gets closed. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6889 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6890 | This overwritten method redirects the action to our |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6891 | ViewManager.closeEditor, which in turn calls our closeIt |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6892 | method. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6893 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6894 | @param alsoDelete ignored |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
6895 | @return flag indicating a successful close of the editor (boolean) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6896 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6897 | return self.vm.closeEditor(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6898 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6899 | def closeIt(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6900 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6901 | 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
|
6902 | """ |
1930
3ecd42f536fd
Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1928
diff
changeset
|
6903 | if Preferences.getEditor("ClearBreaksOnClose") and not self.__clones: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6904 | self.__menuClearBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6905 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6906 | for clone in self.__clones[:]: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6907 | self.removeClone(clone) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6908 | clone.removeClone(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6909 | |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
6910 | self.breakpointModel.rowsAboutToBeRemoved.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6911 | self.__deleteBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
6912 | self.breakpointModel.dataAboutToBeChanged.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6913 | self.__breakPointDataAboutToBeChanged) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
6914 | self.breakpointModel.dataChanged.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6915 | self.__changeBreakPoints) |
460
6a3899e91d76
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
448
diff
changeset
|
6916 | self.breakpointModel.rowsInserted.disconnect( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6917 | self.__addBreakPoints) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6918 | |
3972
efc9c803ebdc
Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3971
diff
changeset
|
6919 | if self.syntaxCheckService is not None: |
efc9c803ebdc
Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3971
diff
changeset
|
6920 | self.syntaxCheckService.syntaxChecked.disconnect( |
4503
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
6921 | self.__processSyntaxCheckResult) |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
6922 | self.syntaxCheckService.error.disconnect( |
d68dcbe1deb3
Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4498
diff
changeset
|
6923 | self.__processSyntaxCheckError) |
3173
1fb284abe46e
Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
6924 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6925 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6926 | self.spell.stopIncrementalCheck() |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6927 | |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6928 | try: |
507
23652b3a0533
Fixed an issue with not connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
502
diff
changeset
|
6929 | self.project.projectPropertiesChanged.disconnect( |
23652b3a0533
Fixed an issue with not connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
502
diff
changeset
|
6930 | self.__projectPropertiesChanged) |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6931 | except TypeError: |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
6932 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6933 | |
1406
e2f1634cceed
Fixed an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1373
diff
changeset
|
6934 | if self.fileName: |
e2f1634cceed
Fixed an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1373
diff
changeset
|
6935 | self.taskViewer.clearFileTasks(self.fileName, True) |
1373
b3b3c99dba01
Made tasks manager forget about global file tasks when file is closed (configurable via configuration dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1353
diff
changeset
|
6936 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
6937 | super(Editor, self).close() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6938 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6939 | def keyPressEvent(self, ev): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6940 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
6941 | Protected method to handle the user input a key at a time. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6942 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6943 | @param ev key event (QKeyEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6944 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6945 | txt = ev.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6946 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6947 | # See it is text to insert. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6948 | if len(txt) and txt >= " ": |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
6949 | super(Editor, self).keyPressEvent(ev) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6950 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6951 | ev.ignore() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6952 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6953 | def focusInEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6954 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6955 | Protected method called when the editor receives focus. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6956 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6957 | 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
|
6958 | rereads it upon request. The cursor is placed at the current position |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6959 | assuming, that it is in the vicinity of the old position after the |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6960 | reread. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6961 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6962 | @param event the event object (QFocusEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6963 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6964 | self.recolor() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6965 | self.vm.editActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6966 | self.vm.editorActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6967 | self.vm.copyActGrp.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6968 | 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
|
6969 | self.vm.searchActGrp.setEnabled(True) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6970 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6971 | self.setCaretWidth(self.caretWidth) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6972 | except AttributeError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6973 | pass |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6974 | self.__updateReadOnly(False) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6975 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6976 | self.vm.editorsCheckFocusInEnabled() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6977 | not self.inReopenPrompt and self.fileName and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6978 | QFileInfo(self.fileName).lastModified().toString() != |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6979 | self.lastModified.toString() |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6980 | ): |
1831
2dd263d670ca
Fixed an issue in the editor that can lead to an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1819
diff
changeset
|
6981 | self.inReopenPrompt = True |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6982 | if Preferences.getEditor("AutoReopen") and not self.isModified(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6983 | self.refresh() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6984 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6985 | msg = self.tr( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
6986 | """<p>The file <b>{0}</b> has been changed while it""" |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6987 | """ was opened in eric6. Reread it?</p>""" |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
6988 | ).format(self.fileName) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
6989 | yesDefault = True |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6990 | if self.isModified(): |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6991 | msg += self.tr( |
929 | 6992 | """<br><b>Warning:</b> You will lose""" |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
6993 | """ your changes upon reopening it.""") |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
6994 | yesDefault = False |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6995 | res = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
6996 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
6997 | self.tr("File changed"), msg, |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6998 | icon=E5MessageBox.Warning, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
6999 | yesDefault=yesDefault) |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
539
diff
changeset
|
7000 | if res: |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7001 | self.refresh() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7002 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7003 | # do not prompt for this change again... |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7004 | self.lastModified = QFileInfo(self.fileName).lastModified() |
1831
2dd263d670ca
Fixed an issue in the editor that can lead to an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1819
diff
changeset
|
7005 | self.inReopenPrompt = False |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7006 | |
404
44a541bea034
Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
342
diff
changeset
|
7007 | self.setCursorFlashTime(QApplication.cursorFlashTime()) |
44a541bea034
Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
342
diff
changeset
|
7008 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7009 | super(Editor, self).focusInEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7010 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7011 | def focusOutEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7012 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
7013 | Protected method called when the editor loses focus. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7014 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7015 | @param event the event object (QFocusEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7016 | """ |
7276
25c93adb5de9
Editor: backed out changes of changeset 3ead033becb8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
7017 | self.vm.editorActGrp.setEnabled(False) |
25c93adb5de9
Editor: backed out changes of changeset 3ead033becb8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
7018 | self.setCaretWidth(0) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7019 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7020 | super(Editor, self).focusOutEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7021 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7022 | def changeEvent(self, evt): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7023 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7024 | Protected method called to process an event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7025 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7026 | This implements special handling for the events showMaximized, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7027 | showMinimized and showNormal. The windows caption is shortened |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7028 | 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
|
7029 | 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
|
7030 | with the QWorkspace. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7031 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7032 | @param evt the event, that was generated (QEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7033 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7034 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7035 | evt.type() == QEvent.WindowStateChange and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7036 | bool(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7037 | ): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7038 | if self.windowState() == Qt.WindowStates(Qt.WindowMinimized): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7039 | cap = os.path.basename(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7040 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7041 | cap = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7042 | if self.isReadOnly(): |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7043 | cap = self.tr("{0} (ro)").format(cap) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7044 | self.setWindowTitle(cap) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7045 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7046 | super(Editor, self).changeEvent(evt) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7047 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7048 | def mousePressEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7049 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7050 | Protected method to handle the mouse press event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7051 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7052 | @param event the mouse press event (QMouseEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7053 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7054 | self.vm.eventFilter(self, event) |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7055 | super(Editor, self).mousePressEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7056 | |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7057 | def wheelEvent(self, evt): |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7058 | """ |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7059 | Protected method to handle wheel events. |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7060 | |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7061 | @param evt reference to the wheel event (QWheelEvent) |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7062 | """ |
7198
684261ef2165
Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7192
diff
changeset
|
7063 | delta = evt.angleDelta().y() |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7064 | if evt.modifiers() & Qt.ControlModifier: |
3778
0c5bc18da740
Added more changes to make eric6 usable with PyQt4 as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
7065 | if delta < 0: |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7066 | self.zoomOut() |
6081
7ea61bd1aa23
Fixed handling of mouse wheel events for mive with a wheel supporting horizontal tilting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6073
diff
changeset
|
7067 | elif delta > 0: |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7068 | self.zoomIn() |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7069 | evt.accept() |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7070 | return |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7071 | |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7072 | if evt.modifiers() & Qt.ShiftModifier: |
3778
0c5bc18da740
Added more changes to make eric6 usable with PyQt4 as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3670
diff
changeset
|
7073 | if delta < 0: |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7074 | self.gotoMethodClass(False) |
6081
7ea61bd1aa23
Fixed handling of mouse wheel events for mive with a wheel supporting horizontal tilting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6073
diff
changeset
|
7075 | elif delta > 0: |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7076 | self.gotoMethodClass(True) |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7077 | evt.accept() |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7078 | return |
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7079 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7080 | super(Editor, self).wheelEvent(evt) |
1507
9225700cbff5
- added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1500
diff
changeset
|
7081 | |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7082 | def event(self, evt): |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7083 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
7084 | Public method handling events. |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7085 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7086 | @param evt reference to the event (QEvent) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7087 | @return flag indicating, if the event was handled (boolean) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7088 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7089 | if evt.type() == QEvent.Gesture: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7090 | self.gestureEvent(evt) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7091 | return True |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7092 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7093 | return super(Editor, self).event(evt) |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7094 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7095 | def gestureEvent(self, evt): |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7096 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7097 | Protected method handling gesture events. |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7098 | |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7099 | @param evt reference to the gesture event (QGestureEvent |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7100 | """ |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7101 | pinch = evt.gesture(Qt.PinchGesture) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7102 | if pinch: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7103 | if pinch.state() == Qt.GestureStarted: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7104 | zoom = (self.getZoom() + 10) / 10.0 |
5631
d0beabfaad42
Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
7105 | pinch.setTotalScaleFactor(zoom) |
d0beabfaad42
Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
7106 | elif pinch.state() == Qt.GestureUpdated: |
d0beabfaad42
Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
7107 | zoom = int(pinch.totalScaleFactor() * 10) - 10 |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7108 | if zoom <= -9: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7109 | zoom = -9 |
5631
d0beabfaad42
Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
7110 | pinch.setTotalScaleFactor(0.1) |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7111 | elif zoom >= 20: |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7112 | zoom = 20 |
5631
d0beabfaad42
Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5624
diff
changeset
|
7113 | pinch.setTotalScaleFactor(3.0) |
1518
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7114 | self.zoomTo(zoom) |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7115 | evt.accept() |
e6e21910210d
Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
7116 | |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7117 | def resizeEvent(self, evt): |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7118 | """ |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7119 | Protected method handling resize events. |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7120 | |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7121 | @param evt reference to the resize event (QResizeEvent) |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7122 | """ |
3484 | 7123 | super(Editor, self).resizeEvent(evt) |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7124 | self.__markerMap.calculateGeometry() |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7125 | |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7126 | def viewportEvent(self, evt): |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7127 | """ |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7128 | Protected method handling event of the viewport. |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7129 | |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7130 | @param evt reference to the event (QEvent) |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7131 | @return flag indiating that the event was handled (boolean) |
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7132 | """ |
7546
bf5f777260a6
Editor: fixed an issue in handling viewport events.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7543
diff
changeset
|
7133 | try: |
bf5f777260a6
Editor: fixed an issue in handling viewport events.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7543
diff
changeset
|
7134 | self.__markerMap.calculateGeometry() |
bf5f777260a6
Editor: fixed an issue in handling viewport events.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7543
diff
changeset
|
7135 | except AttributeError: |
bf5f777260a6
Editor: fixed an issue in handling viewport events.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7543
diff
changeset
|
7136 | # ignore this - there seems to be a runtime issue when the editor |
bf5f777260a6
Editor: fixed an issue in handling viewport events.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7543
diff
changeset
|
7137 | # is created |
bf5f777260a6
Editor: fixed an issue in handling viewport events.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7543
diff
changeset
|
7138 | pass |
3484 | 7139 | return super(Editor, self).viewportEvent(evt) |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7140 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7141 | def __updateReadOnly(self, bForce=True): |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7142 | """ |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7143 | Private method to update the readOnly information for this editor. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7144 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7145 | 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
|
7146 | the attributes have actually changed, such as during |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7147 | initialization time. A signal is emitted after the |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7148 | caption change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7149 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7150 | @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
|
7151 | signal if there was an attribute change. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7152 | """ |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
7153 | if self.fileName == "": |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7154 | return |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
7155 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7156 | readOnly = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7157 | not QFileInfo(self.fileName).isWritable() or |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7158 | self.isReadOnly() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7159 | ) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7160 | if not bForce and (readOnly == self.isReadOnly()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7161 | return |
4891
d6e8171d2c02
Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4814
diff
changeset
|
7162 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7163 | cap = self.fileName |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7164 | if readOnly: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7165 | cap = self.tr("{0} (ro)".format(cap)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7166 | self.setReadOnly(readOnly) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7167 | self.setWindowTitle(cap) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
7168 | self.captionChanged.emit(cap, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7169 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7170 | def refresh(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7171 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7172 | Public slot to refresh the editor contents. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7173 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7174 | # save cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7175 | cline, cindex = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7176 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7177 | # save bookmarks and breakpoints and clear them |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7178 | bmlist = self.getBookmarks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7179 | self.clearBookmarks() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7180 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7181 | # clear syntax error markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7182 | self.clearSyntaxError() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7183 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7184 | # clear flakes warning markers |
3062
9de9373da5bb
Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3059
diff
changeset
|
7185 | self.clearWarnings() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7186 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7187 | # clear breakpoint markers |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7188 | for handle in list(self.breaks.keys()): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7189 | self.markerDeleteHandle(handle) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7190 | self.breaks = {} |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7191 | |
3261
b8fee972444b
Fixed issues with reopening a project where files were delete while they were opened in an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3211
diff
changeset
|
7192 | if not os.path.exists(self.fileName): |
b8fee972444b
Fixed issues with reopening a project where files were delete while they were opened in an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3211
diff
changeset
|
7193 | # close the file, if it was deleted in the background |
b8fee972444b
Fixed issues with reopening a project where files were delete while they were opened in an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3211
diff
changeset
|
7194 | self.close() |
b8fee972444b
Fixed issues with reopening a project where files were delete while they were opened in an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3211
diff
changeset
|
7195 | return |
b8fee972444b
Fixed issues with reopening a project where files were delete while they were opened in an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3211
diff
changeset
|
7196 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7197 | # reread the file |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7198 | try: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7199 | self.readFile(self.fileName) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7200 | except IOError: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7201 | # do not prompt for this change again... |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7202 | self.lastModified = QDateTime.currentDateTime() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7203 | self.setModified(False) |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
7204 | self.__convertTabs() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7205 | |
2189
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
7206 | # re-initialize the online change tracer |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
7207 | self.__reinitOnlineChangeTrace() |
5149cec53130
Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2165
diff
changeset
|
7208 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7209 | # reset cursor position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7210 | self.setCursorPosition(cline, cindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7211 | self.ensureCursorVisible() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7212 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7213 | # reset bookmarks and breakpoints to their old position |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7214 | if bmlist: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7215 | for bm in bmlist: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7216 | self.toggleBookmark(bm) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7217 | self.__restoreBreakpoints() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7218 | |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
486
diff
changeset
|
7219 | self.editorSaved.emit(self.fileName) |
3579
eccd12461319
BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3576
diff
changeset
|
7220 | self.checkSyntax() |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7221 | |
3329
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
7222 | self.__markerMap.update() |
1ee38e29ed4f
Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3327
diff
changeset
|
7223 | |
1807
9898a95461f1
Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1768
diff
changeset
|
7224 | self.refreshed.emit() |
9898a95461f1
Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1768
diff
changeset
|
7225 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7226 | def setMonospaced(self, on): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7227 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7228 | Public method to set/reset a monospaced font. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7229 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7230 | @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
|
7231 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7232 | if on: |
3087
fdbce259929f
Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3069
diff
changeset
|
7233 | if not self.lexer_: |
fdbce259929f
Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3069
diff
changeset
|
7234 | f = Preferences.getEditorOtherFonts("MonospacedFont") |
fdbce259929f
Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3069
diff
changeset
|
7235 | self.monospacedStyles(f) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7236 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7237 | if not self.lexer_: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7238 | self.clearStyles() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7239 | self.__setMarginsDisplay() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7240 | self.setFont(Preferences.getEditorOtherFonts("DefaultFont")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7241 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7242 | self.useMonospaced = on |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7243 | |
3095
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7244 | def clearStyles(self): |
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7245 | """ |
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7246 | Public method to set the styles according the selected Qt style |
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7247 | or the selected editor colours. |
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7248 | """ |
3142 | 7249 | super(Editor, self).clearStyles() |
3095
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7250 | if Preferences.getEditor("OverrideEditAreaColours"): |
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7251 | self.setColor(Preferences.getEditorColour("EditAreaForeground")) |
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7252 | self.setPaper(Preferences.getEditorColour("EditAreaBackground")) |
72938a6d5047
Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3087
diff
changeset
|
7253 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7254 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7255 | ## Drag and Drop Support |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7256 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7257 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7258 | def dragEnterEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7259 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7260 | Protected method to handle the drag enter event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7261 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7262 | @param event the drag enter event (QDragEnterEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7263 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7264 | self.inDragDrop = event.mimeData().hasUrls() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7265 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7266 | event.acceptProposedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7267 | else: |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7268 | super(Editor, self).dragEnterEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7269 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7270 | def dragMoveEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7271 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7272 | Protected method to handle the drag move event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7273 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7274 | @param event the drag move event (QDragMoveEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7275 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7276 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7277 | event.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7278 | else: |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7279 | super(Editor, self).dragMoveEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7280 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7281 | def dragLeaveEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7282 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7283 | Protected method to handle the drag leave event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7284 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7285 | @param event the drag leave event (QDragLeaveEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7286 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7287 | if self.inDragDrop: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7288 | self.inDragDrop = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7289 | event.accept() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7290 | else: |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7291 | super(Editor, self).dragLeaveEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7292 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7293 | def dropEvent(self, event): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7294 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7295 | Protected method to handle the drop event. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7296 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7297 | @param event the drop event (QDropEvent) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7298 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7299 | if event.mimeData().hasUrls(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7300 | for url in event.mimeData().urls(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7301 | fname = url.toLocalFile() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7302 | if fname: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7303 | if not QFileInfo(fname).isDir(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7304 | self.vm.openSourceFile(fname) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7305 | else: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
7306 | E5MessageBox.information( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
7307 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7308 | self.tr("Drop Error"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7309 | self.tr("""<p><b>{0}</b> is not a file.</p>""") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
7310 | .format(fname)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7311 | event.acceptProposedAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7312 | else: |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7313 | super(Editor, self).dropEvent(event) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7314 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7315 | self.inDragDrop = False |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7316 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7317 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7318 | ## Support for Qt resources files |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7319 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7320 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7321 | def __initContextMenuResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7322 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7323 | Private method used to setup the Resources context sub menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
7324 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
7325 | @return reference to the generated menu (QMenu) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7326 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7327 | menu = QMenu(self.tr('Resources')) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7328 | |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
7329 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7330 | self.tr('Add file...'), self.__addFileResource) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
7331 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7332 | self.tr('Add files...'), self.__addFileResources) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
7333 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7334 | self.tr('Add aliased file...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7335 | self.__addFileAliasResource) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
7336 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7337 | self.tr('Add localized resource...'), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7338 | self.__addLocalizedResource) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7339 | menu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
7340 | menu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7341 | self.tr('Add resource frame'), self.__addResourceFrame) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7342 | |
461
34528aaedf1c
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
460
diff
changeset
|
7343 | menu.aboutToShow.connect(self.__showContextMenuResources) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7344 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7345 | return menu |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7346 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7347 | def __showContextMenuResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7348 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7349 | Private slot handling the aboutToShow signal of the resources context |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7350 | menu. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7351 | """ |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7352 | self.showMenu.emit("Resources", self.resourcesMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7353 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7354 | def __addFileResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7355 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7356 | 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
|
7357 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7358 | dirStr = os.path.dirname(self.fileName) |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
7359 | file = E5FileDialog.getOpenFileName( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7360 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7361 | self.tr("Add file resource"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7362 | dirStr, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
7363 | "") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7364 | if file: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7365 | relFile = QDir(dirStr).relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7366 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7367 | self.insert(" <file>{0}</file>\n".format(relFile)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7368 | self.setCursorPosition(line + 1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7369 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7370 | def __addFileResources(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7371 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7372 | 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
|
7373 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7374 | dirStr = os.path.dirname(self.fileName) |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
7375 | files = E5FileDialog.getOpenFileNames( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7376 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7377 | self.tr("Add file resources"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7378 | dirStr, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
7379 | "") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7380 | if files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7381 | myDir = QDir(dirStr) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7382 | filesText = "" |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7383 | for file in files: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7384 | relFile = myDir.relativeFilePath(file) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7385 | filesText += " <file>{0}</file>\n".format(relFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7386 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7387 | self.insert(filesText) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7388 | self.setCursorPosition(line + len(files), index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7389 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7390 | def __addFileAliasResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7391 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7392 | 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
|
7393 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7394 | dirStr = os.path.dirname(self.fileName) |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
7395 | file = E5FileDialog.getOpenFileName( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7396 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7397 | self.tr("Add aliased file resource"), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7398 | dirStr, |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
7399 | "") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7400 | if file: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7401 | relFile = QDir(dirStr).relativeFilePath(file) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
559
diff
changeset
|
7402 | alias, ok = QInputDialog.getText( |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7403 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7404 | self.tr("Add aliased file resource"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7405 | self.tr("Alias for file <b>{0}</b>:").format(relFile), |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7406 | QLineEdit.Normal, |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7407 | relFile) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7408 | if ok and alias: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7409 | line, index = self.getCursorPosition() |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
7410 | self.insert(' <file alias="{1}">{0}</file>\n' |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7411 | .format(relFile, alias)) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7412 | self.setCursorPosition(line + 1, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7413 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7414 | def __addLocalizedResource(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7415 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7416 | Private method to handle the Add localized resource context menu |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7417 | action. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7418 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7419 | from Project.AddLanguageDialog import AddLanguageDialog |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7420 | dlg = AddLanguageDialog(self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7421 | if dlg.exec_() == QDialog.Accepted: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7422 | lang = dlg.getSelectedLanguage() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7423 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7424 | 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
|
7425 | self.setCursorPosition(line + 2, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7426 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7427 | def __addResourceFrame(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7428 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7429 | 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
|
7430 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7431 | line, index = self.getCursorPosition() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7432 | self.insert('<!DOCTYPE RCC>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7433 | '<RCC version="1.0">\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7434 | '<qresource>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7435 | '</qresource>\n' |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7436 | '</RCC>\n') |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7437 | self.setCursorPosition(line + 5, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7438 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7439 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7440 | ## Support for diagrams below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7441 | ################################################################# |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7442 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7443 | def __showClassDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7444 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7445 | 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
|
7446 | """ |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
7447 | from Graphics.UMLDialog import UMLDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7448 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7449 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7450 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7451 | self.classDiagram = UMLDialog( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7452 | UMLDialog.ClassDiagram, self.project, self.fileName, |
2025
8bb085c59cd2
Changed the diagrams to show a better diagram title when printed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1978
diff
changeset
|
7453 | self, noAttrs=False) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7454 | self.classDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7455 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7456 | def __showPackageDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7457 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7458 | 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
|
7459 | """ |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
7460 | from Graphics.UMLDialog import UMLDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7461 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7462 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7463 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7464 | package = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7465 | os.path.isdir(self.fileName) and |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7466 | self.fileName or os.path.dirname(self.fileName) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7467 | ) |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
7468 | res = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
7469 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7470 | self.tr("Package Diagram"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7471 | self.tr("""Include class attributes?"""), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7472 | yesDefault=True) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7473 | self.packageDiagram = UMLDialog( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7474 | UMLDialog.PackageDiagram, self.project, package, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7475 | self, noAttrs=not res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7476 | self.packageDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7477 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7478 | def __showImportsDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7479 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7480 | 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
|
7481 | """ |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
7482 | from Graphics.UMLDialog import UMLDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7483 | if not self.checkDirty(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7484 | return |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7485 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7486 | package = ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7487 | os.path.isdir(self.fileName) and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7488 | self.fileName or os.path.dirname(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7489 | ) |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
7490 | res = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
7491 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7492 | self.tr("Imports Diagram"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7493 | self.tr("""Include imports from external modules?""")) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7494 | self.importsDiagram = UMLDialog( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7495 | UMLDialog.ImportsDiagram, self.project, package, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7496 | self, showExternalImports=res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7497 | self.importsDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7498 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7499 | def __showApplicationDiagram(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7500 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7501 | 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
|
7502 | """ |
2031
c36c2eb62a75
Refactored the UML graphics code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2025
diff
changeset
|
7503 | from Graphics.UMLDialog import UMLDialog |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
7504 | res = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
7505 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7506 | self.tr("Application Diagram"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7507 | self.tr("""Include module names?"""), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7508 | yesDefault=True) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7509 | self.applicationDiagram = UMLDialog( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7510 | UMLDialog.ApplicationDiagram, self.project, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7511 | self, noModules=not res) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7512 | self.applicationDiagram.show() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7513 | |
2034
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7514 | def __loadDiagram(self): |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7515 | """ |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7516 | Private slot to load a diagram from file. |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7517 | """ |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7518 | from Graphics.UMLDialog import UMLDialog |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7519 | self.loadedDiagram = UMLDialog( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7520 | UMLDialog.NoDiagram, self.project, parent=self) |
2034
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7521 | if self.loadedDiagram.load(): |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7522 | self.loadedDiagram.show(fromFile=True) |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7523 | else: |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7524 | self.loadedDiagram = None |
8de0fc1f7fef
Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2031
diff
changeset
|
7525 | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7526 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7527 | ## Typing aids related methods below |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7528 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7529 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7530 | def __toggleTypingAids(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7531 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7532 | Private slot to toggle the typing aids. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7533 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7534 | if self.menuActs["TypingAidsEnabled"].isChecked(): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7535 | self.completer.setEnabled(True) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7536 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7537 | self.completer.setEnabled(False) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7538 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7539 | ####################################################################### |
6059
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
7540 | ## Auto-completing templates |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7541 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7542 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7543 | def editorCommand(self, cmd): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7544 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7545 | Public method to perform a simple editor command. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7546 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7547 | @param cmd the scintilla command to be performed |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7548 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7549 | if cmd == QsciScintilla.SCI_TAB: |
6426
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7550 | try: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7551 | templateViewer = e5App().getObject("TemplateViewer") |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7552 | except KeyError: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7553 | # template viewer is not active |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7554 | templateViewer = None |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7555 | |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7556 | if templateViewer is not None: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7557 | line, index = self.getCursorPosition() |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7558 | tmplName = self.getWordLeft(line, index) |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7559 | if tmplName: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7560 | if templateViewer.hasTemplate(tmplName, |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7561 | self.getLanguage()): |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7562 | self.__applyTemplate(tmplName, self.getLanguage()) |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7563 | return |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7564 | else: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7565 | templateNames = templateViewer.getTemplateNames( |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
7566 | tmplName, self.getLanguage()) |
6426
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7567 | if len(templateNames) == 1: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7568 | self.__applyTemplate(templateNames[0], |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7569 | self.getLanguage()) |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7570 | return |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7571 | elif len(templateNames) > 1: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7572 | self.showUserList( |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7573 | TemplateCompletionListID, |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7574 | ["{0}?{1:d}".format(t, self.TemplateImageID) |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7575 | for t in templateNames]) |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7576 | return |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7577 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2517
diff
changeset
|
7578 | super(Editor, self).editorCommand(cmd) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7579 | |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
7580 | def __applyTemplate(self, templateName, language): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7581 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7582 | Private method to apply a template by name. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7583 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7584 | @param templateName name of the template to apply (string) |
1002
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
7585 | @param language name of the language (group) to get the template |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
7586 | from (string) |
1151d1ea562a
Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
994
diff
changeset
|
7587 | """ |
6426
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7588 | try: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7589 | templateViewer = e5App().getObject("TemplateViewer") |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7590 | except KeyError: |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7591 | # template viewer is not active |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7592 | return |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7593 | |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7594 | if templateViewer.hasTemplate(templateName, self.getLanguage()): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7595 | self.extendSelectionWordLeft() |
6426
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7596 | templateViewer.applyNamedTemplate(templateName, |
f072dd2edb0f
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6306
diff
changeset
|
7597 | self.getLanguage()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7598 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7599 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7600 | ## Project related methods |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7601 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7602 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7603 | def __projectPropertiesChanged(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7604 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7605 | 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
|
7606 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7607 | if self.spell: |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
7608 | pwl, pel = self.project.getProjectDictionaries() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7609 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7610 | pwl=pwl, pel=pel) |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
7611 | |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
7612 | editorConfigEol = self.__getEditorConfig("EOLMode", nodefault=True) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
7613 | if editorConfigEol is not None: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
7614 | self.setEolMode(editorConfigEol) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
7615 | else: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
7616 | self.setEolModeByEolString(self.project.getEolString()) |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
252
diff
changeset
|
7617 | self.convertEols(self.eolMode()) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7618 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7619 | def addedToProject(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7620 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7621 | 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
|
7622 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7623 | if self.spell: |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
7624 | pwl, pel = self.project.getProjectDictionaries() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7625 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7626 | pwl=pwl, pel=pel) |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7627 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7628 | self.project.projectPropertiesChanged.connect( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7629 | self.__projectPropertiesChanged) |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7630 | |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7631 | def projectOpened(self): |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7632 | """ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7633 | Public slot to handle the opening of a project. |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7634 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7635 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7636 | self.fileName and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7637 | self.project.isProjectSource(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7638 | ): |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7639 | self.project.projectPropertiesChanged.connect( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7640 | self.__projectPropertiesChanged) |
1754
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7641 | self.setSpellingForProject() |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7642 | |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7643 | def projectClosed(self): |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7644 | """ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7645 | Public slot to handle the closing of a project. |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7646 | """ |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7647 | try: |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7648 | self.project.projectPropertiesChanged.disconnect( |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7649 | self.__projectPropertiesChanged) |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7650 | except TypeError: |
4e2f87d03546
Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1723
diff
changeset
|
7651 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7652 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7653 | ####################################################################### |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
7654 | ## Spell checking related methods |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7655 | ####################################################################### |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7656 | |
7310
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7657 | def getSpellingLanguage(self): |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7658 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7659 | Public method to get the current spelling language. |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7660 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7661 | @return current spelling language |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7662 | @rtype str |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7663 | """ |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7664 | if self.spell: |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7665 | return self.spell.getLanguage() |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7666 | |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7667 | return "" |
460a332dcc56
Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7306
diff
changeset
|
7668 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7669 | def __setSpellingLanguage(self, language, pwl="", pel=""): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7670 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7671 | Private slot to set the spell checking language. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7672 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7673 | @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
|
7674 | @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
|
7675 | @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
|
7676 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7677 | if self.spell and self.spell.getLanguage() != language: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7678 | self.spell.setLanguage(language, pwl=pwl, pel=pel) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7679 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7680 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7681 | def __setSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7682 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7683 | Private method to initialize the spell checking functionality. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7684 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7685 | if Preferences.getEditor("SpellCheckingEnabled"): |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7686 | self.__spellCheckStringsOnly = Preferences.getEditor( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7687 | "SpellCheckStringsOnly") |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7688 | if self.spell is None: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7689 | self.spell = SpellChecker(self, self.spellingIndicator, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7690 | checkRegion=self.isSpellCheckRegion) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7691 | self.setSpellingForProject() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7692 | self.spell.setMinimumWordSize( |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7693 | Preferences.getEditor("SpellCheckingMinWordSize")) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7694 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7695 | self.setAutoSpellChecking() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7696 | else: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7697 | self.spell = None |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7698 | self.clearAllIndicators(self.spellingIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7699 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7700 | def setSpellingForProject(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7701 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7702 | 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
|
7703 | to the current project. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7704 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7705 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7706 | self.fileName and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7707 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7708 | self.project.isProjectSource(self.fileName) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7709 | ): |
252
05692e3d37bf
Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
7710 | pwl, pel = self.project.getProjectDictionaries() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7711 | self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7712 | pwl=pwl, pel=pel) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7713 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7714 | def setAutoSpellChecking(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7715 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7716 | Public method to set the automatic spell checking. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7717 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7718 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
1768
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
7719 | try: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7720 | self.SCN_CHARADDED.connect( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7721 | self.__spellCharAdded, Qt.UniqueConnection) |
1768
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
7722 | except TypeError: |
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
7723 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7724 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7725 | else: |
542
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
7726 | try: |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
7727 | self.SCN_CHARADDED.disconnect(self.__spellCharAdded) |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
7728 | except TypeError: |
26a79c19993c
Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
541
diff
changeset
|
7729 | pass |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7730 | self.clearAllIndicators(self.spellingIndicator) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7731 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7732 | def isSpellCheckRegion(self, pos): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7733 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7734 | Public method to check, if the given position is within a region, that |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7735 | should be spell checked. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7736 | |
7306 | 7737 | For files with a configured full text file extension all regions will |
7738 | be regarded as to be checked. Depending on configuration, all unknown | |
7739 | files (i.e. those without a file extension) will be checked fully as | |
7740 | well. | |
7741 | ||
7742 | @param pos position to be checked | |
7743 | @type int | |
7744 | @return flag indicating pos is in a spell check region | |
7745 | @rtype bool | |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7746 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7747 | if self.__spellCheckStringsOnly: |
7306 | 7748 | if ( |
7749 | self.__fileNameExtension in | |
7750 | Preferences.getEditor("FullSpellCheckExtensions") | |
7751 | ): | |
7752 | return True | |
7753 | elif ( | |
7754 | not self.__fileNameExtension and | |
7755 | Preferences.getEditor("FullSpellCheckUnknown") | |
7756 | ): | |
7757 | return True | |
7758 | else: | |
7759 | style = self.styleAt(pos) | |
7760 | if self.lexer_ is not None: | |
7761 | return ( | |
7762 | self.lexer_.isCommentStyle(style) or | |
7763 | self.lexer_.isStringStyle(style) | |
7764 | ) | |
7765 | ||
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7766 | return True |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7767 | |
1768
8a04ce23e083
Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1762
diff
changeset
|
7768 | @pyqtSlot(int) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7769 | def __spellCharAdded(self, charNumber): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7770 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
7771 | Private slot called to handle the user entering a character. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7772 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7773 | @param charNumber value of the character entered (integer) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7774 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7775 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7776 | if not chr(charNumber).isalnum(): |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7777 | self.spell.checkWord( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7778 | self.positionBefore(self.currentPosition()), True) |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7779 | elif self.hasIndicator( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7780 | self.spellingIndicator, self.currentPosition()): |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7781 | self.spell.checkWord(self.currentPosition()) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7782 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7783 | def checkSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7784 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7785 | 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
|
7786 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7787 | if self.spell: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7788 | cline, cindex = self.getCursorPosition() |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
7789 | from .SpellCheckingDialog import SpellCheckingDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7790 | dlg = SpellCheckingDialog(self.spell, 0, self.length(), self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7791 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7792 | self.setCursorPosition(cline, cindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7793 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7794 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7795 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7796 | def __checkSpellingSelection(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7797 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7798 | Private slot to spell check the current selection. |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7799 | """ |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
7800 | from .SpellCheckingDialog import SpellCheckingDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7801 | sline, sindex, eline, eindex = self.getSelection() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7802 | startPos = self.positionFromLineIndex(sline, sindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7803 | endPos = self.positionFromLineIndex(eline, eindex) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7804 | dlg = SpellCheckingDialog(self.spell, startPos, endPos, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7805 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7806 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7807 | def __checkSpellingWord(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7808 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7809 | 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
|
7810 | """ |
2409
df3820f08247
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2391
diff
changeset
|
7811 | from .SpellCheckingDialog import SpellCheckingDialog |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7812 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7813 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7814 | wordStartPos = self.positionFromLineIndex(line, wordStart) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7815 | wordEndPos = self.positionFromLineIndex(line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7816 | dlg = SpellCheckingDialog(self.spell, wordStartPos, wordEndPos, self) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7817 | dlg.exec_() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7818 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7819 | def __showContextMenuSpelling(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7820 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7821 | 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
|
7822 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7823 | self.spellingMenu.clear() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7824 | self.spellingSuggActs = [] |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7825 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7826 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7827 | suggestions = self.spell.getSuggestions(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7828 | for suggestion in suggestions[:5]: |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7829 | self.spellingSuggActs.append( |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7830 | self.spellingMenu.addAction(suggestion)) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7831 | if suggestions: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7832 | self.spellingMenu.addSeparator() |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7833 | self.spellingMenu.addAction( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7525
diff
changeset
|
7834 | UI.PixmapCache.getIcon("spellchecking"), |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7835 | self.tr("Check spelling..."), self.__checkSpellingWord) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
7836 | self.spellingMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7837 | self.tr("Add to dictionary"), self.__addToSpellingDictionary) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
7838 | self.spellingMenu.addAction( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
7839 | self.tr("Ignore All"), self.__ignoreSpellingAlways) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7840 | |
3327
1338767b5315
Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3325
diff
changeset
|
7841 | self.showMenu.emit("Spelling", self.spellingMenu, self) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7842 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7843 | def __contextMenuSpellingTriggered(self, action): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7844 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7845 | Private slot to handle the selection of a suggestion of the spelling |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7846 | context menu. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7847 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7848 | @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
|
7849 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7850 | if action in self.spellingSuggActs: |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7851 | replacement = action.text() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7852 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7853 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7854 | self.setSelection(line, wordStart, line, wordEnd) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7855 | self.beginUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7856 | self.removeSelectedText() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7857 | self.insert(replacement) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7858 | self.endUndoAction() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7859 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7860 | def __addToSpellingDictionary(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7861 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7862 | Private slot to add the word below the spelling context menu to the |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7863 | dictionary. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7864 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7865 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7866 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7867 | self.spell.add(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7868 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7869 | wordStart, wordEnd = self.getWordBoundaries(line, index) |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7870 | self.clearIndicator(self.spellingIndicator, line, wordStart, |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7871 | line, wordEnd) |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7872 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7873 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7874 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7875 | def __removeFromSpellingDictionary(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7876 | """ |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7877 | Private slot to remove the word below the context menu to the |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7878 | dictionary. |
92
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7879 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7880 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7881 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7882 | self.spell.remove(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7883 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7884 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7885 | self.spell.checkDocumentIncrementally() |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7886 | |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7887 | def __ignoreSpellingAlways(self): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7888 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7889 | 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
|
7890 | """ |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7891 | line, index = self.lineIndexFromPosition(self.spellingMenuPos) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7892 | word = self.getWord(line, index) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7893 | self.spell.ignoreAlways(word) |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7894 | if Preferences.getEditor("AutoSpellCheckingEnabled"): |
30ffedc3e418
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
88
diff
changeset
|
7895 | self.spell.checkDocumentIncrementally() |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
7896 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
7897 | ####################################################################### |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
7898 | ## Cooperation related methods |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
7899 | ####################################################################### |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
7900 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7901 | def getSharingStatus(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7902 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7903 | Public method to get some share status info. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7904 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7905 | @return tuple indicating, if the editor is sharable, the sharing |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7906 | status, if it is inside a locally initiated shared edit session |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
7907 | and if it is inside a remotely initiated shared edit session |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7908 | (boolean, boolean, boolean, boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7909 | """ |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7910 | return ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7911 | (bool(self.fileName) and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7912 | self.project.isOpen() and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7913 | self.project.isProjectFile(self.fileName)), |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7914 | self.__isShared, |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7915 | self.__inSharedEdit, |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7916 | self.__inRemoteSharedEdit |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
7917 | ) |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7918 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7919 | def shareConnected(self, connected): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7920 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7921 | 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
|
7922 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7923 | @param connected flag indicating the connected state (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7924 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7925 | if not connected: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7926 | self.__inRemoteSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7927 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7928 | self.__updateReadOnly() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7929 | self.cancelSharedEdit(send=False) |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7930 | self.__isSyncing = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7931 | self.__receivedWhileSyncing = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7932 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7933 | def shareEditor(self, share): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7934 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7935 | 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
|
7936 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7937 | @param share flag indicating the share status (boolean) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7938 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7939 | self.__isShared = share |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7940 | if not share: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7941 | self.shareConnected(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7942 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7943 | def startSharedEdit(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7944 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7945 | 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
|
7946 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7947 | self.__inSharedEdit = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7948 | self.__savedText = self.text() |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
7949 | hashStr = str( |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7950 | QCryptographicHash.hash( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7951 | Utilities.encode(self.__savedText, self.encoding)[0], |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7952 | QCryptographicHash.Sha1).toHex(), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7953 | encoding="utf-8") |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
7954 | self.__send(Editor.StartEditToken, hashStr) |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7955 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7956 | def sendSharedEdit(self): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7957 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7958 | 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
|
7959 | send the changes. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7960 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7961 | commands = self.__calculateChanges(self.__savedText, self.text()) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7962 | self.__send(Editor.EndEditToken, commands) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7963 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7964 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7965 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7966 | def cancelSharedEdit(self, send=True): |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7967 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7968 | 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
|
7969 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7970 | @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
|
7971 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7972 | self.__inSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7973 | self.__savedText = "" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7974 | if send: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7975 | self.__send(Editor.CancelEditToken) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7976 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7977 | def __send(self, token, args=None): |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7978 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7979 | 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
|
7980 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
7981 | @param token command token (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
7982 | @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
|
7983 | """ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7984 | if self.vm.isConnected(): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7985 | msg = "" |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7986 | if token in (Editor.StartEditToken, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7987 | Editor.EndEditToken, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7988 | Editor.RequestSyncToken, |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7989 | Editor.SyncToken): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7990 | msg = "{0}{1}{2}".format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7991 | token, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7992 | Editor.Separator, |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7993 | args |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7994 | ) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7995 | elif token == Editor.CancelEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7996 | msg = "{0}{1}c".format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
7997 | token, |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7998 | Editor.Separator |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
7999 | ) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8000 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8001 | 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
|
8002 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
8003 | def receive(self, command): |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
8004 | """ |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
8005 | 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
|
8006 | |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
8007 | @param command command string (string) |
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
8008 | """ |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8009 | if self.__isShared: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8010 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8011 | self.__isSyncing and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8012 | not command.startswith(Editor.SyncToken + Editor.Separator) |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8013 | ): |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8014 | self.__receivedWhileSyncing.append(command) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8015 | else: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8016 | self.__dispatchCommand(command) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8017 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8018 | def __dispatchCommand(self, command): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8019 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8020 | Private method to dispatch received commands. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8021 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8022 | @param command command to be processed (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8023 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8024 | token, argsString = command.split(Editor.Separator, 1) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8025 | if token == Editor.StartEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8026 | self.__processStartEditCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8027 | elif token == Editor.CancelEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8028 | self.shareConnected(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8029 | elif token == Editor.EndEditToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8030 | self.__processEndEditCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8031 | elif token == Editor.RequestSyncToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8032 | self.__processRequestSyncCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8033 | elif token == Editor.SyncToken: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8034 | self.__processSyncCommand(argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8035 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8036 | def __processStartEditCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8037 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
8038 | Private slot to process a remote StartEdit command. |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8039 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8040 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8041 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8042 | if not self.__inSharedEdit and not self.__inRemoteSharedEdit: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8043 | self.__inRemoteSharedEdit = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8044 | self.setReadOnly(True) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8045 | self.__updateReadOnly() |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
8046 | hashStr = str( |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8047 | QCryptographicHash.hash( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
8048 | Utilities.encode(self.text(), self.encoding)[0], |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8049 | QCryptographicHash.Sha1).toHex(), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
8050 | encoding="utf-8") |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
8051 | if hashStr != argsString: |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8052 | # 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
|
8053 | self.__isSyncing = True |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8054 | self.__send(Editor.RequestSyncToken, argsString) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8055 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8056 | def __calculateChanges(self, old, new): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8057 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8058 | 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
|
8059 | new text. |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8060 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8061 | @param old old text (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8062 | @param new new text (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8063 | @return commands to change old into new (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8064 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8065 | oldL = old.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8066 | newL = new.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8067 | matcher = difflib.SequenceMatcher(None, oldL, newL) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8068 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8069 | formatStr = "@@{0} {1} {2} {3}" |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8070 | commands = [] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8071 | for token, i1, i2, j1, j2 in matcher.get_opcodes(): |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7575
diff
changeset
|
8072 | if token == "insert": # secok |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8073 | commands.append(formatStr.format("i", j1, j2 - j1, -1)) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8074 | commands.extend(newL[j1:j2]) |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7575
diff
changeset
|
8075 | elif token == "delete": # secok |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8076 | commands.append(formatStr.format("d", j1, i2 - i1, -1)) |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7575
diff
changeset
|
8077 | elif token == "replace": # secok |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8078 | 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
|
8079 | commands.extend(newL[j1:j2]) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8080 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8081 | 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
|
8082 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8083 | def __processEndEditCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8084 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
8085 | Private slot to process a remote EndEdit command. |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8086 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8087 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8088 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8089 | commands = argsString.splitlines() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8090 | sep = self.getLineSeparator() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8091 | cur = self.getCursorPosition() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8092 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8093 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8094 | self.beginUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8095 | while commands: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8096 | commandLine = commands.pop(0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8097 | if not commandLine.startswith("@@"): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8098 | continue |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8099 | |
2526
a91cba8291b9
Minimum modifications to start Eric5 with Py2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
8100 | args = commandLine.split() |
a91cba8291b9
Minimum modifications to start Eric5 with Py2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2525
diff
changeset
|
8101 | command = args.pop(0) |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8102 | pos, l1, l2 = [int(arg) for arg in args] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8103 | if command == "@@i": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8104 | txt = sep.join(commands[0:l1]) + sep |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8105 | self.insertAt(txt, pos, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8106 | del commands[0:l1] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8107 | elif command == "@@d": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8108 | self.setSelection(pos, 0, pos + l1, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8109 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8110 | elif command == "@@r": |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8111 | self.setSelection(pos, 0, pos + l1, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8112 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8113 | txt = sep.join(commands[0:l2]) + sep |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8114 | self.insertAt(txt, pos, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8115 | del commands[0:l2] |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8116 | self.endUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8117 | self.__updateReadOnly() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8118 | self.__inRemoteSharedEdit = False |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8119 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8120 | self.setCursorPosition(*cur) |
155
375e3c884874
Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
128
diff
changeset
|
8121 | |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8122 | def __processRequestSyncCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8123 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
8124 | Private slot to process a remote RequestSync command. |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8125 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8126 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8127 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8128 | if self.__inSharedEdit: |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
8129 | hashStr = str( |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8130 | QCryptographicHash.hash( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
8131 | Utilities.encode(self.__savedText, self.encoding)[0], |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8132 | QCryptographicHash.Sha1).toHex(), |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
8133 | encoding="utf-8") |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8134 | |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
8135 | if hashStr == argsString: |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8136 | self.__send(Editor.SyncToken, self.__savedText) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8137 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8138 | def __processSyncCommand(self, argsString): |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8139 | """ |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2959
diff
changeset
|
8140 | Private slot to process a remote Sync command. |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8141 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8142 | @param argsString string containing the command parameters (string) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8143 | """ |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8144 | if self.__isSyncing: |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8145 | cur = self.getCursorPosition() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8146 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8147 | self.setReadOnly(False) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8148 | self.beginUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8149 | self.selectAll() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8150 | self.removeSelectedText() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8151 | self.insertAt(argsString, 0, 0) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8152 | self.endUndoAction() |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8153 | self.setReadOnly(True) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8154 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8155 | self.setCursorPosition(*cur) |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8156 | |
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8157 | while self.__receivedWhileSyncing: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
939
diff
changeset
|
8158 | command = self.__receivedWhileSyncing.pop(0) |
826
2e3e2055e715
Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
825
diff
changeset
|
8159 | self.__dispatchCommand(command) |
158
6a561f87bc07
Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
8160 | |
718
979d6e242404
Fixed an issue in the editor saving files without extension on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
8161 | self.__isSyncing = False |
2213
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8162 | |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8163 | ####################################################################### |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8164 | ## Special search related methods |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8165 | ####################################################################### |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8166 | |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8167 | def searchCurrentWordForward(self): |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8168 | """ |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8169 | Public slot to search the current word forward. |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8170 | """ |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8171 | self.__searchCurrentWord(forward=True) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8172 | |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8173 | def searchCurrentWordBackward(self): |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8174 | """ |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8175 | Public slot to search the current word backward. |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8176 | """ |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8177 | self.__searchCurrentWord(forward=False) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8178 | |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8179 | def __searchCurrentWord(self, forward=True): |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8180 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3583
diff
changeset
|
8181 | Private slot to search the next occurrence of the current word. |
2213
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8182 | |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8183 | @param forward flag indicating the search direction (boolean) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8184 | """ |
3069
8a9579bbf583
Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3067
diff
changeset
|
8185 | self.hideFindIndicator() |
2213
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8186 | line, index = self.getCursorPosition() |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8187 | word = self.getCurrentWord() |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8188 | wordStart, wordEnd = self.getCurrentWordBoundaries() |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8189 | wordStartPos = self.positionFromLineIndex(line, wordStart) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8190 | wordEndPos = self.positionFromLineIndex(line, wordEnd) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8191 | |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8192 | regExp = re.compile(r"\b{0}\b".format(word)) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8193 | if forward: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8194 | startPos = wordEndPos |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8195 | else: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8196 | startPos = wordStartPos |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8197 | |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8198 | matches = [m for m in regExp.finditer(self.text())] |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8199 | if matches: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8200 | if forward: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8201 | matchesAfter = [m for m in matches if m.start() >= startPos] |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8202 | if matchesAfter: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8203 | match = matchesAfter[0] |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8204 | else: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8205 | # wrap around |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8206 | match = matches[0] |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8207 | else: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8208 | matchesBefore = [m for m in matches if m.start() < startPos] |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8209 | if matchesBefore: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8210 | match = matchesBefore[-1] |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8211 | else: |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8212 | # wrap around |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8213 | match = matches[-1] |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8214 | line, index = self.lineIndexFromPosition(match.start()) |
022f4ad3ed19
Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2189
diff
changeset
|
8215 | self.setSelection(line, index + len(match.group(0)), line, index) |
3069
8a9579bbf583
Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3067
diff
changeset
|
8216 | self.showFindIndicator(line, index, |
8a9579bbf583
Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3067
diff
changeset
|
8217 | line, index + len(match.group(0))) |
2589
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8218 | |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8219 | ####################################################################### |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8220 | ## Sort related methods |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8221 | ####################################################################### |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8222 | |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8223 | def sortLines(self): |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8224 | """ |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8225 | Public slot to sort the lines spanned by a rectangular selection. |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8226 | """ |
2590
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8227 | if not self.selectionIsRectangle(): |
2589
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8228 | return |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8229 | |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8230 | from .SortOptionsDialog import SortOptionsDialog |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8231 | dlg = SortOptionsDialog() |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8232 | if dlg.exec_() == QDialog.Accepted: |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8233 | ascending, alnum, caseSensitive = dlg.getData() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8234 | origStartLine, origStartIndex, origEndLine, origEndIndex = ( |
2590
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8235 | self.getRectangularSelection() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8236 | ) |
2590
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8237 | # convert to upper-left to lower-right |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8238 | startLine = min(origStartLine, origEndLine) |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8239 | startIndex = min(origStartIndex, origEndIndex) |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8240 | endLine = max(origStartLine, origEndLine) |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8241 | endIndex = max(origStartIndex, origEndIndex) |
2589
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8242 | |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
8243 | # step 1: extract the text of the rectangular selection and |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
8244 | # the lines |
2589
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8245 | selText = {} |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8246 | txtLines = {} |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8247 | for line in range(startLine, endLine + 1): |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8248 | txtLines[line] = self.text(line) |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8249 | txt = txtLines[line][startIndex:endIndex].strip() |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8250 | if not alnum: |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8251 | try: |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8252 | txt = float(txt) |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8253 | except ValueError: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
8254 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3011
diff
changeset
|
8255 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
8256 | self.tr("Sort Lines"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3169
diff
changeset
|
8257 | self.tr( |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
8258 | """The selection contains illegal data for a""" |
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2994
diff
changeset
|
8259 | """ numerical sort.""")) |
2589
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8260 | return |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8261 | |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8262 | if txt in selText: |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8263 | selText[txt].append(line) |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8264 | else: |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8265 | selText[txt] = [line] |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8266 | |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8267 | # step 2: calculate the sort parameters |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8268 | reverse = not ascending |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8269 | if alnum and not caseSensitive: |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8270 | keyFun = str.lower |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8271 | else: |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8272 | keyFun = None |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8273 | |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8274 | # step 3: sort the lines |
2590
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8275 | eol = self.getLineSeparator() |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8276 | lastWithEol = True |
2589
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8277 | newLines = [] |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8278 | for txt in sorted(selText.keys(), key=keyFun, reverse=reverse): |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8279 | for line in selText[txt]: |
2590
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8280 | txt = txtLines[line] |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8281 | if not txt.endswith(eol): |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8282 | lastWithEol = False |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8283 | txt += eol |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8284 | newLines.append(txt) |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8285 | if not lastWithEol: |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8286 | newLines[-1] = newLines[-1][:-len(eol)] |
2589
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8287 | |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8288 | # step 4: replace the lines by the sorted ones |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8289 | self.setSelection(startLine, 0, endLine + 1, 0) |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8290 | self.beginUndoAction() |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8291 | self.replaceSelectedText("".join(newLines)) |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8292 | self.endUndoAction() |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8293 | |
a51b0c113ed7
Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2517
diff
changeset
|
8294 | # step 5: reset the rectangular selection |
2590
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8295 | self.setRectangularSelection(origStartLine, origStartIndex, |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8296 | origEndLine, origEndIndex) |
abe9b3e04381
Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2589
diff
changeset
|
8297 | self.selectionChanged.emit() |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8298 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8299 | ####################################################################### |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8300 | ## Mouse click handler related methods |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8301 | ####################################################################### |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8302 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8303 | def mouseReleaseEvent(self, evt): |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8304 | """ |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8305 | Protected method calling a registered mouse click handler function. |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8306 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8307 | @param evt event object |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8308 | @type QMouseEvent |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8309 | """ |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8310 | modifiers = evt.modifiers() |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8311 | button = evt.button() |
4292
9dfee1559826
Fixed an issue in the mouse click handler of the editor. Needed to cast the modifiers and mouse button to an integer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4290
diff
changeset
|
8312 | key = (int(modifiers), int(button)) |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8313 | |
4297
8ece10107224
Corrected the mouse release event handler of the editor to call the super class one first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4292
diff
changeset
|
8314 | self.vm.eventFilter(self, evt) |
8ece10107224
Corrected the mouse release event handler of the editor to call the super class one first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4292
diff
changeset
|
8315 | super(Editor, self).mouseReleaseEvent(evt) |
8ece10107224
Corrected the mouse release event handler of the editor to call the super class one first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4292
diff
changeset
|
8316 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8317 | if ( |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8318 | button != Qt.NoButton and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8319 | Preferences.getEditor("MouseClickHandlersEnabled") and |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8320 | key in self.__mouseClickHandlers |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7261
diff
changeset
|
8321 | ): |
4297
8ece10107224
Corrected the mouse release event handler of the editor to call the super class one first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4292
diff
changeset
|
8322 | evt.accept() |
4302
748f4945462b
Changed the call to mouse click handlers in the editor to pass the calling editor as a parameter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4299
diff
changeset
|
8323 | self.__mouseClickHandlers[key][1](self) |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8324 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8325 | def setMouseClickHandler(self, name, modifiers, button, function): |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8326 | """ |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8327 | Public method to set a mouse click handler. |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8328 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8329 | @param name name of the plug-in (or 'internal') setting this handler |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8330 | @type str |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8331 | @param modifiers keyboard modifiers of the handler |
4299
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8332 | @type Qt.KeyboardModifiers or int |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8333 | @param button mouse button of the handler |
4299
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8334 | @type Qt.MouseButton or int |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8335 | @param function handler function |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8336 | @type func |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8337 | @return flag indicating success |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8338 | @rtype bool |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8339 | """ |
4299
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8340 | if int(button): |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8341 | key = (int(modifiers), int(button)) |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8342 | if key in self.__mouseClickHandlers: |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8343 | E5MessageBox.warning( |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8344 | self, |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8345 | self.tr("Register Mouse Click Handler"), |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8346 | self.tr("""A mouse click handler for "{0}" was already""" |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8347 | """ registered by "{1}". Aborting request by""" |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8348 | """ "{2}"...""").format( |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8349 | MouseUtilities.MouseButtonModifier2String( |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8350 | modifiers, button), |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8351 | self.__mouseClickHandlers[key][0], |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8352 | name)) |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8353 | return False |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8354 | |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8355 | self.__mouseClickHandlers[key] = (name, function) |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8356 | return True |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8357 | |
93219cb8f66b
Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4297
diff
changeset
|
8358 | return False |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8359 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8360 | def getMouseClickHandler(self, modifiers, button): |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8361 | """ |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8362 | Public method to get a registered mouse click handler. |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8363 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8364 | @param modifiers keyboard modifiers of the handler |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8365 | @type Qt.KeyboardModifiers |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8366 | @param button mouse button of the handler |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8367 | @type Qt.MouseButton |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8368 | @return plug-in name and registered function |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8369 | @rtype tuple of str and func |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8370 | """ |
4292
9dfee1559826
Fixed an issue in the mouse click handler of the editor. Needed to cast the modifiers and mouse button to an integer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4290
diff
changeset
|
8371 | key = (int(modifiers), int(button)) |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8372 | if key in self.__mouseClickHandlers: |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8373 | return self.__mouseClickHandlers[key] |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8374 | else: |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8375 | return ("", None) |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8376 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8377 | def getMouseClickHandlers(self, name): |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8378 | """ |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8379 | Public method to get all registered mouse click handlers of |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8380 | a plug-in. |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8381 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8382 | @param name name of the plug-in |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8383 | @type str |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8384 | @return registered mouse click handlers as list of modifiers, |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8385 | mouse button and function |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8386 | @rtype list of tuple of (Qt.KeyboardModifiers, Qt.MouseButton,func) |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8387 | """ |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8388 | lst = [] |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8389 | for key, value in self.__mouseClickHandlers.items(): |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8390 | if value[0] == name: |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8391 | lst.append((key[0], key[1], value[1])) |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8392 | return lst |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8393 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8394 | def removeMouseClickHandler(self, modifiers, button): |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8395 | """ |
4287
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8396 | Public method to un-registered a mouse click handler. |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8397 | |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8398 | @param modifiers keyboard modifiers of the handler |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8399 | @type Qt.KeyboardModifiers |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8400 | @param button mouse button of the handler |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8401 | @type Qt.MouseButton |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8402 | """ |
4292
9dfee1559826
Fixed an issue in the mouse click handler of the editor. Needed to cast the modifiers and mouse button to an integer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4290
diff
changeset
|
8403 | key = (int(modifiers), int(button)) |
4287
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8404 | if key in self.__mouseClickHandlers: |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8405 | del self.__mouseClickHandlers[key] |
4286
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8406 | |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8407 | def removeMouseClickHandlers(self, name): |
255f56eb7f05
Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4283
diff
changeset
|
8408 | """ |
4287
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8409 | Public method to un-registered all mouse click handlers of |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8410 | a plug-in. |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8411 | |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8412 | @param name name of the plug-in |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8413 | @type str |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8414 | """ |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8415 | keys = [] |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8416 | for key in self.__mouseClickHandlers: |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8417 | if self.__mouseClickHandlers[key][0] == name: |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8418 | keys.append(key) |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8419 | for key in keys: |
12274edd3050
Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4286
diff
changeset
|
8420 | del self.__mouseClickHandlers[key] |
6059
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
8421 | |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
8422 | def __executeSelection(self): |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
8423 | """ |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
8424 | Private slot to execute the selected text in the shell window. |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
8425 | """ |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
8426 | txt = self.selectedText() |
8f7c66c53c27
Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6052
diff
changeset
|
8427 | e5App().getObject("Shell").executeLines(txt) |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8428 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8429 | ####################################################################### |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8430 | ## Methods implementing the interface to EditorConfig |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8431 | ####################################################################### |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8432 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8433 | def __loadEditorConfig(self, fileName=""): |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8434 | """ |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8435 | Private method to load the EditorConfig properties. |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8436 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8437 | @param fileName name of the file |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8438 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8439 | """ |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8440 | if not fileName: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8441 | fileName = self.fileName |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8442 | |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8443 | self.__editorConfig = self.__loadEditorConfigObject(fileName) |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8444 | |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8445 | if fileName: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8446 | self.__setTabAndIndent() |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8447 | |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8448 | def __loadEditorConfigObject(self, fileName): |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8449 | """ |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8450 | Private method to load the EditorConfig properties for the given |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8451 | file name. |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8452 | |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8453 | @param fileName name of the file |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8454 | @type str |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8455 | @return EditorConfig dictionary |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8456 | @rtype dict |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8457 | """ |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8458 | editorConfig = {} |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8459 | |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8460 | if fileName: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8461 | try: |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8462 | editorConfig = editorconfig.get_properties(fileName) |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8463 | except editorconfig.EditorConfigError: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8464 | E5MessageBox.warning( |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8465 | self, |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8466 | self.tr("EditorConfig Properties"), |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8467 | self.tr("""<p>The EditorConfig properties for file""" |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8468 | """ <b>{0}</b> could not be loaded.</p>""") |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8469 | .format(fileName)) |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8470 | |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8471 | return editorConfig |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8472 | |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8473 | def __getEditorConfig(self, option, nodefault=False, config=None): |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8474 | """ |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8475 | Private method to get the requested option via EditorConfig. |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8476 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8477 | If there is no EditorConfig defined, the equivalent built-in option |
6996
7d5a103bdb76
EditorConfig: updated to version 0.12.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6954
diff
changeset
|
8478 | will be used (Preferences.getEditor() ). The option must be given as |
7d5a103bdb76
EditorConfig: updated to version 0.12.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6954
diff
changeset
|
8479 | the Preferences option key. The mapping to the EditorConfig option name |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8480 | will be done within this method. |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8481 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8482 | @param option Preferences option key |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8483 | @type str |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8484 | @param nodefault flag indicating to not get the default value from |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8485 | Preferences but return None instead |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8486 | @type bool |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8487 | @param config reference to an EditorConfig object or None |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8488 | @type dict |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8489 | @return value of requested setting or None if nothing was found and |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8490 | nodefault parameter was True |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8491 | @rtype any |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8492 | """ |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8493 | if config is None: |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8494 | config = self.__editorConfig |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8495 | |
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8496 | if not config: |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8497 | if nodefault: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8498 | return None |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8499 | else: |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8500 | value = self.__getOverrideValue(option) |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8501 | if value is None: |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8502 | # no override |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8503 | value = Preferences.getEditor(option) |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8504 | return value |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8505 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8506 | try: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8507 | if option == "EOLMode": |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8508 | value = config["end_of_line"] |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8509 | if value == "lf": |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8510 | value = QsciScintilla.EolUnix |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8511 | elif value == "crlf": |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8512 | value = QsciScintilla.EolWindows |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8513 | elif value == "cr": |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8514 | value = QsciScintilla.EolMac |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8515 | else: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8516 | value = None |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8517 | elif option == "DefaultEncoding": |
6101
b854a825d483
Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6099
diff
changeset
|
8518 | value = config["charset"] |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8519 | elif option == "InsertFinalNewline": |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8520 | value = Utilities.toBool(config["insert_final_newline"]) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8521 | elif option == "StripTrailingWhitespace": |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8522 | value = Utilities.toBool(config["trim_trailing_whitespace"]) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8523 | elif option == "TabWidth": |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8524 | value = int(config["tab_width"]) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8525 | elif option == "IndentWidth": |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8526 | value = config["indent_size"] |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8527 | if value == "tab": |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8528 | value = self.__getEditorConfig("TabWidth", config=config) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8529 | else: |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8530 | value = int(value) |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8531 | elif option == "TabForIndentation": |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8532 | value = config["indent_style"] == "tab" |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8533 | except KeyError: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8534 | value = None |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8535 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8536 | if value is None and not nodefault: |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8537 | # use Preferences in case of error |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8538 | value = self.__getOverrideValue(option) |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8539 | if value is None: |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8540 | # no override |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8541 | value = Preferences.getEditor(option) |
6099
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8542 | |
a7fecbc392d7
Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6092
diff
changeset
|
8543 | return value |
6105
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8544 | |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8545 | def getEditorConfig(self, option): |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8546 | """ |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8547 | Public method to get the requested option via EditorConfig. |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8548 | |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8549 | @param option Preferences option key |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8550 | @type str |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8551 | @return value of requested setting |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8552 | @rtype any |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8553 | """ |
cbd34d558bd9
Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6101
diff
changeset
|
8554 | return self.__getEditorConfig(option) |
6932
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8555 | |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8556 | def __getOverrideValue(self, option): |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8557 | """ |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8558 | Private method to get an override value for the current file type. |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8559 | |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8560 | @param option Preferences option key |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8561 | @type str |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8562 | @return override value; None in case nothing is defined |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8563 | @rtype any |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8564 | """ |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8565 | if option in ("TabWidth", "IndentWidth"): |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8566 | overrides = Preferences.getEditor("TabIndentOverride") |
7293
4738aac944e6
Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7278
diff
changeset
|
8567 | language = self.filetype or self.apiLanguage |
4738aac944e6
Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7278
diff
changeset
|
8568 | if language in overrides: |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8569 | if option == "TabWidth": |
7293
4738aac944e6
Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7278
diff
changeset
|
8570 | return overrides[language][0] |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8571 | elif option == "IndentWidth": |
7293
4738aac944e6
Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7278
diff
changeset
|
8572 | return overrides[language][1] |
7278
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8573 | |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8574 | return None |
1820a0344b62
Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7276
diff
changeset
|
8575 | |
6932
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8576 | def mouseDoubleClickEvent(self, evt): |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8577 | """ |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8578 | Protected method to handle mouse double click events. |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8579 | |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8580 | @param evt reference to the mouse event |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8581 | @type QMouseEvent |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8582 | """ |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8583 | super(Editor, self).mouseDoubleClickEvent(evt) |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8584 | |
8a3df4c6ac9a
Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6930
diff
changeset
|
8585 | self.mouseDoubleClick.emit(evt.pos(), evt.buttons()) |