Tue, 18 May 2021 18:19:47 +0200
Continued porting eric to PyQt6.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
3 | # Copyright (c) 2002 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a browser with class browsing capabilities. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
8114 | 11 | import shutil |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
13 | from PyQt6.QtCore import ( |
8109 | 14 | pyqtSignal, pyqtSlot, Qt, QUrl, QCoreApplication, QItemSelectionModel, |
15 | QModelIndex, QElapsedTimer | |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
16 | ) |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
17 | from PyQt6.QtGui import QAction, QDesktopServices |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
18 | from PyQt6.QtWidgets import ( |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
19 | QTreeView, QApplication, QMenu, QAbstractItemView, QInputDialog, |
8114 | 20 | QLineEdit, QDialog |
8109 | 21 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
53
diff
changeset
|
23 | from E5Gui.E5Application import e5App |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
24 | from E5Gui import E5FileDialog, E5MessageBox |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
4528
63154a5e18d0
Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4186
diff
changeset
|
26 | from Project.ProjectBrowserModel import ProjectBrowserSimpleDirectoryItem |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
27 | from .BrowserModel import ( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
28 | BrowserModel, BrowserDirectoryItem, BrowserFileItem, BrowserClassItem, |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
29 | BrowserMethodItem, BrowserClassAttributeItem, BrowserImportItem, |
8114 | 30 | BrowserImportsItem, BrowserSysPathItem, BrowserGlobalsItem, |
31 | BrowserItemDirectory | |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
32 | ) |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
33 | from .BrowserSortFilterProxyModel import BrowserSortFilterProxyModel |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | import UI.PixmapCache |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | import Preferences |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | import Utilities |
3619
4643a9ef7dd6
Avoid masking of global module mimetypes with the local one in Python 2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3565
diff
changeset
|
38 | import Utilities.MimeTypes |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
40 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | class Browser(QTreeView): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
43 | Class used to display a file system tree. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | Via the context menu that |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | is displayed by a right click the user can select various actions on |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | the selected file. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | |
5726
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
49 | @signal sourceFile(filename) emitted to open a Python file at a line (str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
50 | @signal sourceFile(filename, lineno) emitted to open a Python file at a |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
51 | line (str, int) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
52 | @signal sourceFile(filename, lineno, type) emitted to open a Python file |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
53 | at a line giving an explicit file type (str, int, str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
54 | @signal sourceFile(filename, linenos) emitted to open a Python file giving |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
55 | a list of lines(str, list) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
56 | @signal designerFile(filename) emitted to open a Qt-Designer file (str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
57 | @signal linguistFile(filename) emitted to open a Qt-Linguist (*.ts) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
58 | file (str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
59 | @signal trpreview(filenames) emitted to preview Qt-Linguist (*.qm) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
60 | files (list of str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
61 | @signal trpreview(filenames, ignore) emitted to preview Qt-Linguist (*.qm) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
62 | files indicating whether non-existent files shall be ignored |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
63 | (list of str, bool) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
64 | @signal projectFile(filename) emitted to open an eric project file (str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
65 | @signal multiProjectFile(filename) emitted to open an eric multi project |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
66 | file (str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
67 | @signal pixmapFile(filename) emitted to open a pixmap file (str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
68 | @signal pixmapEditFile(filename) emitted to edit a pixmap file (str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
69 | @signal svgFile(filename) emitted to open a SVG file (str) |
8282 | 70 | @signal umlFile(filename) emitted to open an eric UML file (str) |
5726
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
71 | @signal binaryFile(filename) emitted to open a file as binary (str) |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
72 | @signal unittestOpen(filename) emitted to open a Python file for a |
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5674
diff
changeset
|
73 | unit test (str) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
4186
e2bf1c32272b
Improved the 'import' change to move the cursor to the next occurence for each double-click on an import item in the project source browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4183
diff
changeset
|
75 | sourceFile = pyqtSignal((str, ), (str, int), (str, list), (str, int, str)) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
76 | designerFile = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
77 | linguistFile = pyqtSignal(str) |
949
f888270da22e
Fixed a new style signals related issue related to redefining some signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
78 | trpreview = pyqtSignal((list, ), (list, bool)) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
79 | projectFile = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
80 | multiProjectFile = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
81 | pixmapFile = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
82 | pixmapEditFile = pyqtSignal(str) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
83 | svgFile = pyqtSignal(str) |
8282 | 84 | umlFile = pyqtSignal(str) |
4651
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
85 | binaryFile = pyqtSignal(str) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
86 | unittestOpen = pyqtSignal(str) |
476
121633976eca
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
458
diff
changeset
|
87 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
88 | def __init__(self, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | @param parent parent widget (QWidget) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8205
diff
changeset
|
94 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
96 | self.setWindowTitle(QCoreApplication.translate('Browser', |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
97 | 'File-Browser')) |
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:
7360
diff
changeset
|
98 | self.setWindowIcon(UI.PixmapCache.getIcon("eric")) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | self.__model = BrowserModel() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | self.__sortModel = BrowserSortFilterProxyModel() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | self.__sortModel.setSourceModel(self.__model) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | self.setModel(self.__sortModel) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | self.selectedItemsFilter = [BrowserFileItem] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
107 | self._activating = False |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
108 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
109 | self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) |
458
1695e7a2db54
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
233
diff
changeset
|
110 | self.customContextMenuRequested.connect(self._contextMenuRequested) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
111 | self.activated.connect(self._openItem) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
112 | self.expanded.connect(self._resizeColumns) |
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
113 | self.collapsed.connect(self._resizeColumns) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
115 | self.setWhatsThis(QCoreApplication.translate( |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
116 | 'Browser', |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | """<b>The Browser Window</b>""" |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
118 | """<p>This allows you to easily navigate the hierarchy of""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
119 | """ directories and files on your system, identify the Python""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
120 | """ programs and open them up in a Source Viewer window. The""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
121 | """ window displays several separate hierarchies.</p>""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
122 | """<p>The first hierarchy is only shown if you have opened a""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
123 | """ program for debugging and its root is the directory""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
124 | """ containing that program. Usually all of the separate files""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
125 | """ that make up a Python application are held in the same""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
126 | """ directory, so this hierarchy gives you easy access to most""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
127 | """ of what you will need.</p>""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
128 | """<p>The next hierarchy is used to easily navigate the""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
129 | """ directories that are specified in the Python""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
130 | """ <tt>sys.path</tt> variable.</p>""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
131 | """<p>The remaining hierarchies allow you navigate your system""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
132 | """ as a whole. On a UNIX system there will be a hierarchy with""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
133 | """ <tt>/</tt> at its root and another with the user home""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
134 | """ directory. On a Windows system there will be a hierarchy for""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
135 | """ each drive on the""" |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ system.</p>""" |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
137 | """<p>Python programs (i.e. those with a <tt>.py</tt> file name""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
138 | """ suffix) are identified in the hierarchies with a Python""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
139 | """ icon. The right mouse button will popup a menu which lets""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
140 | """ you open the file in a Source Viewer window, open the file""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
141 | """ for debugging or use it for a unittest run.</p>""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
142 | """<p>The context menu of a class, function or method allows you""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
143 | """ to open the file defining this class, function or method and""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
144 | """ will ensure, that the correct source line is visible.</p>""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
145 | """<p>Qt-Designer files (i.e. those with a <tt>.ui</tt> file""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
146 | """ name suffix) are shown with a Designer icon. The context""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
147 | """ menu of these files allows you to start Qt-Designer with""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
148 | """ that file.</p>""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
149 | """<p>Qt-Linguist files (i.e. those with a <tt>.ts</tt> file""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
150 | """ name suffix) are shown with a Linguist icon. The context""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
151 | """ menu of these files allows you to start Qt-Linguist with""" |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
152 | """ that file.</p>""" |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | )) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | self.__createPopupMenus() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | self._init() # perform common initialization tasks |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | |
5011
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
159 | self._keyboardSearchString = "" |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
160 | self._keyboardSearchTimer = QElapsedTimer() |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
161 | self._keyboardSearchTimer.invalidate() |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
162 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | def _init(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | Protected method to perform initialization tasks common to this |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | base class and all derived classes. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | self.setRootIsDecorated(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | self.setAlternatingRowColors(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | header = self.header() |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
172 | header.setSortIndicator(0, Qt.SortOrder.AscendingOrder) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | header.setSortIndicatorShown(True) |
7198
684261ef2165
Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7055
diff
changeset
|
174 | header.setSectionsClickable(True) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | self.setSortingEnabled(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
178 | self.setSelectionMode( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
179 | QAbstractItemView.SelectionMode.ExtendedSelection) |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
180 | self.setSelectionBehavior( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
181 | QAbstractItemView.SelectionBehavior.SelectRows) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | self.header().setStretchLastSection(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | self.headerSize0 = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | self.layoutDisplay() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | def layoutDisplay(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | Public slot to perform a layout operation. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | self._resizeColumns(QModelIndex()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | self._resort() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | def _resizeColumns(self, index): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | Protected slot to resize the view when items get expanded or collapsed. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | @param index index of item (QModelIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | w = max(100, self.sizeHintForColumn(0)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | if w != self.headerSize0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | self.header().resizeSection(0, w) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | self.headerSize0 = w |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | def _resort(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | Protected slot to resort the tree. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
209 | self.model().sort(self.header().sortIndicatorSection(), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | self.header().sortIndicatorOrder()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | def __createPopupMenus(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | Private method to generate the various popup menus. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | """ |
8109 | 216 | self.showHiddenFilesAct = QAction( |
217 | QCoreApplication.translate('Browser', 'Show Hidden Files')) | |
218 | self.showHiddenFilesAct.setCheckable(True) | |
219 | self.showHiddenFilesAct.toggled.connect(self._showHidden) | |
220 | self.showHiddenFilesAct.setChecked( | |
221 | Preferences.getUI("BrowsersListHiddenFiles")) | |
222 | ||
8114 | 223 | self.__newMenu = QMenu(QCoreApplication.translate('Browser', "New"), |
224 | self) | |
225 | self.__newMenu.addAction( | |
226 | QCoreApplication.translate('Browser', 'Directory'), | |
227 | self._newDirectory) | |
228 | self.__newMenu.addAction( | |
229 | QCoreApplication.translate('Browser', 'File'), self._newFile) | |
230 | ||
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | # create the popup menu for source files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | self.sourceMenu = QMenu(self) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
233 | self.sourceMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
234 | QCoreApplication.translate('Browser', 'Open'), self._openItem) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
235 | self.unittestAct = self.sourceMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
236 | QCoreApplication.translate('Browser', 'Run unittest...'), |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
237 | self.handleUnittest) |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
238 | self.sourceMenu.addSeparator() |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
239 | self.mimeTypeAct = self.sourceMenu.addAction( |
5674
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
240 | QCoreApplication.translate('Browser', 'Show Mime-Type'), |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
241 | self.__showMimeType) |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
242 | self.sourceMenu.addSeparator() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | self.sourceMenu.addAction( |
7677
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
244 | QCoreApplication.translate('Browser', 'Refresh Source File'), |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
245 | self.__refreshSource) |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
246 | self.sourceMenu.addSeparator() |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
247 | self.sourceMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
248 | QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | self._copyToClipboard) |
8109 | 250 | self.sourceMenu.addSeparator() |
251 | self.sourceMenu.addAction(self.showHiddenFilesAct) | |
8114 | 252 | self.sourceMenu.addSeparator() |
253 | self.sourceMenu.addMenu(self.__newMenu) | |
254 | self.sourceMenu.addAction( | |
255 | QCoreApplication.translate('Browser', 'Delete'), | |
256 | self._deleteFileOrDirectory) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | # create the popup menu for general use |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | self.menu = QMenu(self) |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
260 | self.menu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
261 | QCoreApplication.translate('Browser', 'Open'), self._openItem) |
4651
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
262 | self.menu.addAction( |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
263 | QCoreApplication.translate('Browser', 'Open in Hex Editor'), |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
264 | self._openHexEditor) |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
265 | self.editPixmapAct = self.menu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
266 | QCoreApplication.translate('Browser', 'Open in Icon Editor'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | self._editPixmap) |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
268 | self.menu.addSeparator() |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
269 | self.mimeTypeAct = self.menu.addAction( |
5674
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
270 | QCoreApplication.translate('Browser', 'Show Mime-Type'), |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
271 | self.__showMimeType) |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
272 | self.menu.addSeparator() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | self.menu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
274 | QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | self._copyToClipboard) |
8109 | 276 | self.menu.addSeparator() |
277 | self.menu.addAction(self.showHiddenFilesAct) | |
8114 | 278 | self.menu.addSeparator() |
279 | self.menu.addMenu(self.__newMenu) | |
280 | self.menu.addAction( | |
281 | QCoreApplication.translate('Browser', 'Delete'), | |
282 | self._deleteFileOrDirectory) | |
8109 | 283 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | # create the menu for multiple selected files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | self.multiMenu = QMenu(self) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
286 | self.multiMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
287 | QCoreApplication.translate('Browser', 'Open'), self._openItem) |
8109 | 288 | self.multiMenu.addSeparator() |
289 | self.multiMenu.addAction(self.showHiddenFilesAct) | |
8114 | 290 | self.multiMenu.addSeparator() |
291 | self.multiMenu.addAction( | |
292 | QCoreApplication.translate('Browser', 'Delete'), | |
293 | self.__deleteMultiple) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | # create the directory menu |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | self.dirMenu = QMenu(self) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
297 | self.dirMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
298 | QCoreApplication.translate('Browser', 'New toplevel directory...'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | self.__newToplevelDir) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
300 | self.addAsTopLevelAct = self.dirMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
301 | QCoreApplication.translate('Browser', 'Add as toplevel directory'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | self.__addAsToplevelDir) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
303 | self.removeFromToplevelAct = self.dirMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
304 | QCoreApplication.translate('Browser', 'Remove from toplevel'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | self.__removeToplevel) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | self.dirMenu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
307 | self.dirMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
308 | QCoreApplication.translate('Browser', 'Refresh directory'), |
233
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
309 | self.__refreshDirectory) |
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
310 | self.dirMenu.addSeparator() |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
311 | self.dirMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
312 | QCoreApplication.translate('Browser', 'Find in this directory'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | self.__findInDirectory) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
314 | self.dirMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
315 | QCoreApplication.translate( |
7055
d62e7c38ee8e
Browser: fixed a little typo.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6987
diff
changeset
|
316 | 'Browser', 'Find && Replace in this directory'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | self.__replaceInDirectory) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | self.dirMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
319 | QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | self._copyToClipboard) |
8109 | 321 | self.dirMenu.addSeparator() |
322 | self.dirMenu.addAction(self.showHiddenFilesAct) | |
8114 | 323 | self.dirMenu.addSeparator() |
324 | self.dirMenu.addMenu(self.__newMenu) | |
325 | self.dirMenu.addAction( | |
326 | QCoreApplication.translate('Browser', 'Delete'), | |
327 | self._deleteFileOrDirectory) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | |
1303
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
329 | # create the attribute menu |
5674
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
330 | self.gotoMenu = QMenu(QCoreApplication.translate('Browser', "Goto"), |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
331 | self) |
1303
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
332 | self.gotoMenu.aboutToShow.connect(self._showGotoMenu) |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
333 | self.gotoMenu.triggered.connect(self._gotoAttribute) |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
334 | |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
335 | self.attributeMenu = QMenu(self) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
336 | self.attributeMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
337 | QCoreApplication.translate('Browser', 'New toplevel directory...'), |
1303
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
338 | self.__newToplevelDir) |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
339 | self.attributeMenu.addSeparator() |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
340 | self.attributeMenu.addMenu(self.gotoMenu) |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
341 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | # create the background menu |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | self.backMenu = QMenu(self) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
344 | self.backMenu.addAction( |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
345 | QCoreApplication.translate('Browser', 'New toplevel directory...'), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | self.__newToplevelDir) |
8109 | 347 | self.backMenu.addSeparator() |
348 | self.backMenu.addAction(self.showHiddenFilesAct) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | def mouseDoubleClickEvent(self, mouseEvent): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
352 | Protected method of QAbstractItemView. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
354 | Reimplemented to disable expanding/collapsing of items when |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
355 | double-clicking. Instead the double-clicked entry is opened. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | @param mouseEvent the mouse event (QMouseEvent) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | """ |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
359 | index = self.indexAt(mouseEvent.position().toPoint()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | if index.isValid(): |
4528
63154a5e18d0
Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4186
diff
changeset
|
361 | itm = self.model().item(index) |
63154a5e18d0
Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4186
diff
changeset
|
362 | if isinstance(itm, ( |
63154a5e18d0
Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4186
diff
changeset
|
363 | BrowserDirectoryItem, BrowserImportsItem, |
4529
6becda664299
Extended Tobias' change to include the Globals item as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4528
diff
changeset
|
364 | ProjectBrowserSimpleDirectoryItem, BrowserSysPathItem, |
6becda664299
Extended Tobias' change to include the Globals item as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4528
diff
changeset
|
365 | BrowserGlobalsItem)): |
4528
63154a5e18d0
Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4186
diff
changeset
|
366 | self.setExpanded(index, not self.isExpanded(index)) |
63154a5e18d0
Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4186
diff
changeset
|
367 | else: |
63154a5e18d0
Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
4186
diff
changeset
|
368 | self._openItem() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | def _contextMenuRequested(self, coord): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | Protected slot to show the context menu of the listview. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | @param coord the position of the mouse pointer (QPoint) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | """ |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
376 | categories = self.getSelectedItemsCountCategorized( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
377 | [BrowserDirectoryItem, BrowserFileItem, |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | BrowserClassItem, BrowserMethodItem]) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | cnt = categories["sum"] |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
380 | bfcnt = categories[str(BrowserFileItem)] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | if cnt > 1 and cnt == bfcnt: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | self.multiMenu.popup(self.mapToGlobal(coord)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | index = self.indexAt(coord) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | if index.isValid(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | self.setCurrentIndex(index) |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
388 | flags = ( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
389 | QItemSelectionModel.SelectionFlag.ClearAndSelect | |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
390 | QItemSelectionModel.SelectionFlag.Rows |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
391 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | self.selectionModel().select(index, flags) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | itm = self.model().item(index) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | coord = self.mapToGlobal(coord) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | if isinstance(itm, BrowserFileItem): |
476
121633976eca
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
458
diff
changeset
|
397 | if itm.isPython3File(): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | if itm.fileName().endswith('.py'): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | self.unittestAct.setEnabled(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | self.unittestAct.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | self.sourceMenu.popup(coord) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | self.editPixmapAct.setVisible(itm.isPixmapFile()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | self.menu.popup(coord) |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
406 | elif isinstance( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
407 | itm, |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
408 | (BrowserClassItem, BrowserMethodItem, BrowserImportItem) |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
409 | ): |
4183
856ba07de877
Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4101
diff
changeset
|
410 | self.editPixmapAct.setVisible(False) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | self.menu.popup(coord) |
1303
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
412 | elif isinstance(itm, BrowserClassAttributeItem): |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
413 | self.attributeMenu.popup(coord) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | elif isinstance(itm, BrowserDirectoryItem): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | if not index.parent().isValid(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | self.removeFromToplevelAct.setEnabled(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | self.addAsTopLevelAct.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | self.removeFromToplevelAct.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | self.addAsTopLevelAct.setEnabled(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | self.dirMenu.popup(coord) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | self.backMenu.popup(coord) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | self.backMenu.popup(self.mapToGlobal(coord)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | |
1303
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
427 | def _showGotoMenu(self): |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
428 | """ |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
429 | Protected slot to prepare the goto submenu of the attribute menu. |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
430 | """ |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
431 | self.gotoMenu.clear() |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
432 | |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
433 | itm = self.model().item(self.currentIndex()) |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
434 | linenos = itm.linenos() |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
435 | fileName = itm.fileName() |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
436 | |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
437 | for lineno in sorted(linenos): |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
438 | act = self.gotoMenu.addAction( |
5674
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
439 | QCoreApplication.translate( |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
440 | 'Browser', "Line {0}").format(lineno)) |
1303
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
441 | act.setData([fileName, lineno]) |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
442 | |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
443 | def _gotoAttribute(self, act): |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
444 | """ |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
445 | Protected slot to handle the selection of the goto menu. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
446 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
447 | @param act reference to the action (E5Action) |
1303
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
448 | """ |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
449 | fileName, lineno = act.data() |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
450 | self.sourceFile[str, int].emit(fileName, lineno) |
6018d7ac3aec
Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
451 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | def handlePreferencesChanged(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | Public slot used to handle the preferencesChanged signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | self.model().preferencesChanged() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | self._resort() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | def _openItem(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | Protected slot to handle the open popup menu entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | """ |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
463 | itmList = self.getSelectedItems( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
464 | [BrowserFileItem, BrowserClassItem, |
4183
856ba07de877
Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4101
diff
changeset
|
465 | BrowserMethodItem, BrowserClassAttributeItem, |
856ba07de877
Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4101
diff
changeset
|
466 | BrowserImportItem]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
468 | if not self._activating: |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
469 | self._activating = True |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
470 | for itm in itmList: |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
471 | if isinstance(itm, BrowserFileItem): |
8228
772103b14c18
Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
472 | if ( |
772103b14c18
Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
473 | itm.isPython3File() or |
772103b14c18
Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
474 | itm.isIdlFile() or |
772103b14c18
Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
475 | itm.isProtobufFile() or |
772103b14c18
Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
476 | itm.isResourcesFile() |
772103b14c18
Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8227
diff
changeset
|
477 | ): |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
478 | self.sourceFile[str].emit(itm.fileName()) |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
479 | elif itm.isRubyFile(): |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
480 | self.sourceFile[str, int, str].emit( |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
481 | itm.fileName(), -1, "Ruby") |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
482 | elif itm.isDFile(): |
3012
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
483 | self.sourceFile[str, int, str].emit( |
d177226027e2
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2965
diff
changeset
|
484 | itm.fileName(), -1, "D") |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
485 | elif itm.isDesignerFile(): |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
486 | self.designerFile.emit(itm.fileName()) |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
487 | elif itm.isLinguistFile(): |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
488 | if itm.fileExt() == '.ts': |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
489 | self.linguistFile.emit(itm.fileName()) |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
490 | else: |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
491 | self.trpreview.emit([itm.fileName()]) |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
492 | elif itm.isProjectFile(): |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
493 | self.projectFile.emit(itm.fileName()) |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
494 | elif itm.isMultiProjectFile(): |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
495 | self.multiProjectFile.emit(itm.fileName()) |
2334
fc69ad77e18a
Introduced a zoom widget in the status bar of several windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
496 | elif itm.isSvgFile(): |
fc69ad77e18a
Introduced a zoom widget in the status bar of several windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
497 | self.svgFile.emit(itm.fileName()) |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
498 | elif itm.isPixmapFile(): |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
499 | self.pixmapFile.emit(itm.fileName()) |
8282 | 500 | elif itm.isEricGraphicsFile(): |
501 | self.umlFile.emit(itm.fileName()) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | else: |
3619
4643a9ef7dd6
Avoid masking of global module mimetypes with the local one in Python 2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3565
diff
changeset
|
503 | if Utilities.MimeTypes.isTextFile(itm.fileName()): |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
504 | self.sourceFile[str].emit(itm.fileName()) |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
505 | else: |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
506 | QDesktopServices.openUrl(QUrl(itm.fileName())) |
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
507 | elif isinstance(itm, BrowserClassItem): |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
508 | self.sourceFile[str, int].emit( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
509 | itm.fileName(), itm.classObject().lineno) |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
510 | elif isinstance(itm, BrowserMethodItem): |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
511 | self.sourceFile[str, int].emit( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
512 | itm.fileName(), itm.functionObject().lineno) |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
513 | elif isinstance(itm, BrowserClassAttributeItem): |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
514 | self.sourceFile[str, int].emit( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
515 | itm.fileName(), itm.attributeObject().lineno) |
4183
856ba07de877
Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4101
diff
changeset
|
516 | elif isinstance(itm, BrowserImportItem): |
4186
e2bf1c32272b
Improved the 'import' change to move the cursor to the next occurence for each double-click on an import item in the project source browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4183
diff
changeset
|
517 | self.sourceFile[str, list].emit( |
e2bf1c32272b
Improved the 'import' change to move the cursor to the next occurence for each double-click on an import item in the project source browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4183
diff
changeset
|
518 | itm.fileName(), itm.linenos()) |
2099
afde0e9110f7
Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2094
diff
changeset
|
519 | self._activating = False |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
521 | def __showMimeType(self): |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
522 | """ |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
523 | Private slot to show the mime type of the selected entry. |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
524 | """ |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
525 | itmList = self.getSelectedItems( |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
526 | [BrowserFileItem, BrowserClassItem, |
4183
856ba07de877
Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4101
diff
changeset
|
527 | BrowserMethodItem, BrowserClassAttributeItem, |
856ba07de877
Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4101
diff
changeset
|
528 | BrowserImportItem]) |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
529 | if itmList: |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
530 | mimetype = Utilities.MimeTypes.mimeType(itmList[0].fileName()) |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
531 | if mimetype is None: |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
532 | E5MessageBox.warning( |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
533 | self, |
5674
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
534 | QCoreApplication.translate('Browser', "Show Mime-Type"), |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
535 | QCoreApplication.translate( |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
536 | 'Browser', |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
537 | """The mime type of the file could not be""" |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
538 | """ determined.""")) |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
539 | elif mimetype.split("/")[0] == "text": |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
540 | E5MessageBox.information( |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
541 | self, |
5674
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
542 | QCoreApplication.translate('Browser', "Show Mime-Type"), |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
543 | QCoreApplication.translate( |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
544 | 'Browser', |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
545 | """The file has the mime type <b>{0}</b>.""") |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
546 | .format(mimetype)) |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
547 | else: |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
548 | textMimeTypesList = Preferences.getUI("TextMimeTypes") |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
549 | if mimetype in textMimeTypesList: |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
550 | E5MessageBox.information( |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
551 | self, |
5674
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
552 | QCoreApplication.translate( |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
553 | 'Browser', "Show Mime-Type"), |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
554 | QCoreApplication.translate( |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
555 | 'Browser', |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
556 | """The file has the mime type <b>{0}</b>.""") |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
557 | .format(mimetype)) |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
558 | else: |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
559 | ok = E5MessageBox.yesNo( |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
560 | self, |
5674
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
561 | QCoreApplication.translate( |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
562 | 'Browser', "Show Mime-Type"), |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
563 | QCoreApplication.translate( |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
564 | 'Browser', |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
565 | """The file has the mime type <b>{0}</b>.""" |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
566 | """<br/> Shall it be added to the list of""" |
a0ad2dcb27f9
Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5599
diff
changeset
|
567 | """ text mime types?""").format(mimetype)) |
4101
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
568 | if ok: |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
569 | textMimeTypesList.append(mimetype) |
68c26f72c0d1
Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
570 | Preferences.setUI("TextMimeTypes", textMimeTypesList) |
7677
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
571 | |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
572 | def __refreshSource(self): |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
573 | """ |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
574 | Private slot to refresh the structure of a source file. |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
575 | """ |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
576 | itmList = self.getSelectedItems([BrowserFileItem]) |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
577 | if itmList: |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
578 | self.__model.repopulateFileItem(itmList[0]) |
d4d33990b355
File Browser: changed it to react upon changed files if their contents is shown
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7635
diff
changeset
|
579 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | def _editPixmap(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | Protected slot to handle the open in icon editor popup menu entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | itmList = self.getSelectedItems([BrowserFileItem]) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | for itm in itmList: |
8227
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
587 | if isinstance(itm, BrowserFileItem) and itm.isPixmapFile(): |
349308e84eeb
Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8221
diff
changeset
|
588 | self.pixmapEditFile.emit(itm.fileName()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | |
4651
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
590 | def _openHexEditor(self): |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
591 | """ |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
592 | Protected slot to handle the open in hex editor popup menu entry. |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
593 | """ |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
594 | itmList = self.getSelectedItems([BrowserFileItem]) |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
595 | |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
596 | for itm in itmList: |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
597 | if isinstance(itm, BrowserFileItem): |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
598 | self.binaryFile.emit(itm.fileName()) |
7f3f276d3bf3
Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
599 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | def _copyToClipboard(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
602 | Protected method to copy the text shown for an entry to the clipboard. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | itm = self.model().item(self.currentIndex()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | fn = itm.fileName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | except AttributeError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
609 | fn = itm.dirName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
610 | except AttributeError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
611 | fn = "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | if fn: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | cb = QApplication.clipboard() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
615 | cb.setText(fn) |
8109 | 616 | |
617 | @pyqtSlot(bool) | |
618 | def _showHidden(self, checked): | |
619 | """ | |
620 | Protected slot to show or hide hidden files. | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
621 | |
8109 | 622 | @param checked flag indicating the state of the action |
623 | @type bool | |
624 | """ | |
625 | self.__sortModel.setShowHiddenFiles(checked) | |
626 | # remember the current state | |
627 | Preferences.setUI("BrowsersListHiddenFiles", checked) | |
628 | ||
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
629 | def handleUnittest(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
630 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
631 | Public slot to handle the unittest popup menu entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
632 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
633 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
634 | index = self.currentIndex() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
635 | itm = self.model().item(index) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
636 | pyfn = itm.fileName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
637 | except AttributeError: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
638 | pyfn = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
639 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | if pyfn is not None: |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
641 | self.unittestOpen.emit(pyfn) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
643 | def __newToplevelDir(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
644 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | Private slot to handle the New toplevel directory popup menu entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
646 | """ |
882
34b86be88bf0
Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
880
diff
changeset
|
647 | dname = E5FileDialog.getExistingDirectory( |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
648 | None, |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
649 | QCoreApplication.translate('Browser', "New toplevel directory"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
650 | "", |
8322
b422b4e77d19
Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
651 | E5FileDialog.ShowDirsOnly) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
652 | if dname: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | dname = os.path.abspath(Utilities.toNativeSeparators(dname)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | self.__model.addTopLevelDir(dname) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
656 | def __removeToplevel(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
657 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
658 | Private slot to handle the Remove from toplevel popup menu entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
660 | index = self.currentIndex() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
661 | sindex = self.model().mapToSource(index) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | self.__model.removeToplevelDir(sindex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
663 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | def __addAsToplevelDir(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
665 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | Private slot to handle the Add as toplevel directory popup menu entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
667 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
668 | index = self.currentIndex() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
669 | dname = self.model().item(index).dirName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
670 | self.__model.addTopLevelDir(dname) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
671 | |
233
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
672 | def __refreshDirectory(self): |
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
673 | """ |
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
674 | Private slot to refresh a directory entry. |
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
675 | """ |
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
676 | index = self.currentIndex() |
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
677 | refreshDir = self.model().item(index).dirName() |
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
678 | self.__model.directoryChanged(refreshDir) |
9d2677615a3d
Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
679 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
680 | def __findInDirectory(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
681 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
682 | Private slot to handle the Find in directory popup menu entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
683 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
684 | index = self.currentIndex() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
685 | searchDir = self.model().item(index).dirName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
686 | |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
687 | e5App().getObject("UserInterface").showFindFilesDialog( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
688 | searchDir=searchDir) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
689 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
690 | def __replaceInDirectory(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
691 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
692 | Private slot to handle the Find&Replace in directory popup menu entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
693 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
694 | index = self.currentIndex() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
695 | searchDir = self.model().item(index).dirName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
696 | |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
697 | e5App().getObject("UserInterface").showReplaceFilesDialog( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
698 | searchDir=searchDir) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
699 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
882
diff
changeset
|
700 | def handleProgramChange(self, fn): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
701 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
702 | Public slot to handle the programChange signal. |
2965
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
703 | |
d133c7edd88a
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2763
diff
changeset
|
704 | @param fn file name (string) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
705 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
706 | self.__model.programChange(os.path.dirname(fn)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
707 | |
3357
2390df6f42ba
Started to change the file browser model such, that the sys.path entry is dependent on the running interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
708 | def handleInterpreterChanged(self, interpreter): |
2390df6f42ba
Started to change the file browser model such, that the sys.path entry is dependent on the running interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
709 | """ |
2390df6f42ba
Started to change the file browser model such, that the sys.path entry is dependent on the running interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
710 | Public slot to handle a change of the debug client's interpreter. |
2390df6f42ba
Started to change the file browser model such, that the sys.path entry is dependent on the running interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
711 | |
2390df6f42ba
Started to change the file browser model such, that the sys.path entry is dependent on the running interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
712 | @param interpreter interpreter of the debug client (string) |
2390df6f42ba
Started to change the file browser model such, that the sys.path entry is dependent on the running interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
713 | """ |
2390df6f42ba
Started to change the file browser model such, that the sys.path entry is dependent on the running interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
714 | self.__model.interpreterChanged(interpreter) |
2390df6f42ba
Started to change the file browser model such, that the sys.path entry is dependent on the running interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
715 | |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
716 | def wantedItem(self, itm, filterList=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
717 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
718 | Public method to check type of an item. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
719 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
720 | @param itm the item to check (BrowserItem) |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
721 | @param filterList list of classes to check against |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
722 | @return flag indicating item is a valid type (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
723 | """ |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
724 | if filterList is None: |
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
725 | filterList = self.selectedItemsFilter |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
726 | |
8221
0572a215bd2f
Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
727 | return any(isinstance(itm, typ) for typ in filterList) |
0572a215bd2f
Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
728 | |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
729 | def getSelectedItems(self, filterList=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
730 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
731 | Public method to get the selected items. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
732 | |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
733 | @param filterList list of classes to check against |
8114 | 734 | @return list of selected items (list of BrowserItem) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
735 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
736 | selectedItems = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
737 | indexes = self.selectedIndexes() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
738 | for index in indexes: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
739 | if index.column() == 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
740 | itm = self.model().item(index) |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
741 | if self.wantedItem(itm, filterList): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
742 | selectedItems.append(itm) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
743 | return selectedItems |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
744 | |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
745 | def getSelectedItemsCount(self, filterList=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
746 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
747 | Public method to get the count of items selected. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
748 | |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
749 | @param filterList list of classes to check against |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
750 | @return count of items selected (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
751 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
752 | count = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
753 | indexes = self.selectedIndexes() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
754 | for index in indexes: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
755 | if index.column() == 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
756 | itm = self.model().item(index) |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
757 | if self.wantedItem(itm, filterList): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
758 | count += 1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
759 | return count |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
760 | |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
761 | def getSelectedItemsCountCategorized(self, filterList=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
762 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
763 | Public method to get a categorized count of selected items. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
764 | |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
765 | @param filterList list of classes to check against |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
766 | @return a dictionary containing the counts of items belonging |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
767 | to the individual filter classes. The keys of the dictionary |
3450
2f7c8fd8e3f5
Added capability to check multiple files from the project sources browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3357
diff
changeset
|
768 | are the string representation of the classes given in the |
2f7c8fd8e3f5
Added capability to check multiple files from the project sources browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3357
diff
changeset
|
769 | filter (i.e. str(filterClass)). The dictionary contains |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
770 | an additional entry with key "sum", that stores the sum of |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
771 | all selected entries fulfilling the filter criteria. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
772 | """ |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
773 | if filterList is None: |
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
774 | filterList = self.selectedItemsFilter |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
775 | categories = {} |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
776 | categories["sum"] = 0 |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
777 | for typ in filterList: |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
778 | categories[str(typ)] = 0 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
779 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
780 | indexes = self.selectedIndexes() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
781 | for index in indexes: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
782 | if index.column() == 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
783 | itm = self.model().item(index) |
5599
033967644b1f
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
784 | for typ in filterList: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
785 | if isinstance(itm, typ): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
786 | categories["sum"] += 1 |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
787 | categories[str(typ)] += 1 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
788 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
789 | return categories |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
790 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
791 | def saveToplevelDirs(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
792 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
793 | Public slot to save the toplevel directories. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
794 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
795 | self.__model.saveToplevelDirs() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
796 | |
5011
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
797 | def keyboardSearch(self, search): |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
798 | """ |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
799 | Public function to search the tree via the keyboard. |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
800 | |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
801 | @param search the character entered via the keyboard |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
802 | @type str |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
803 | """ |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
804 | if self.model().rowCount() == 0: |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
805 | return |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
806 | |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8258
diff
changeset
|
807 | startIndex = ( |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8258
diff
changeset
|
808 | self.currentIndex() |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8258
diff
changeset
|
809 | if self.currentIndex().isValid() else |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8258
diff
changeset
|
810 | self.model().index(0, 0) |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8258
diff
changeset
|
811 | ) |
5011
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
812 | |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
813 | keyboardSearchTimeWasValid = self._keyboardSearchTimer.isValid() |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
814 | keyboardSearchTimeElapsed = self._keyboardSearchTimer.restart() |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
815 | if ( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
816 | not search or |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
817 | not keyboardSearchTimeWasValid or |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
818 | keyboardSearchTimeElapsed > |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
819 | QApplication.keyboardInputInterval() |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
820 | ): |
5011
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
821 | self._keyboardSearchString = search.lower() |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
822 | else: |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
823 | self._keyboardSearchString += search.lower() |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
824 | |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
825 | index = startIndex |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
826 | found = False |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
827 | while True: |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
828 | name = self.model().data(index) |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
829 | if ( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
830 | name.lower().startswith(self._keyboardSearchString) and |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
831 | self._keyboardSearchType(self.model().item(index)) |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
832 | ): |
5011
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
833 | found = True |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
834 | break |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
835 | |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
836 | index = self.indexBelow(index) |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
837 | if not index.isValid(): |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
838 | index = self.model().index(0, 0) |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
839 | if index == startIndex: |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
840 | break |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
841 | |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
842 | if found: |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
843 | self.setCurrentIndex(index) |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
844 | |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
845 | def _keyboardSearchType(self, item): |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
846 | """ |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
847 | Protected method to check, if the item is of the correct type. |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
848 | |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
849 | @param item reference to the item |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
850 | @type BrowserItem |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
851 | @return flag indicating a correct type |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
852 | @rtype bool |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
853 | """ |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
854 | return isinstance( |
4085e2348621
Added capability to search the file tree via the keyboard (directories and files only) to the file browser and the project browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4651
diff
changeset
|
855 | item, (BrowserDirectoryItem, BrowserFileItem, BrowserSysPathItem)) |
8114 | 856 | |
857 | @pyqtSlot() | |
858 | def _newDirectory(self): | |
859 | """ | |
860 | Protected slot to create a new directory. | |
861 | """ | |
862 | index = self.currentIndex() | |
863 | if index.isValid(): | |
864 | dname = self.model().item(index).dirName() | |
865 | newName, ok = QInputDialog.getText( | |
866 | self, | |
867 | self.tr("New Directory"), | |
868 | self.tr("Name for new directory:"), | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
869 | QLineEdit.EchoMode.Normal) |
8114 | 870 | if ok and bool(newName): |
871 | dirpath = os.path.join(dname, newName) | |
872 | if os.path.exists(dirpath): | |
873 | E5MessageBox.warning( | |
874 | self, | |
875 | self.tr("New Directory"), | |
876 | self.tr("A file or directory named <b>{0}</b> exists" | |
877 | " already. Aborting...") | |
878 | .format(newName)) | |
879 | else: | |
880 | try: | |
881 | os.mkdir(dirpath, mode=0o751) | |
882 | except OSError as err: | |
883 | E5MessageBox.critical( | |
884 | self, | |
885 | self.tr("New Directory"), | |
886 | self.tr("<p>The directory <b>{0}</b> could not be" | |
887 | " created.</p><p>Reason: {1}</p>") | |
888 | .format(newName, str(err))) | |
889 | ||
890 | @pyqtSlot() | |
891 | def _newFile(self): | |
892 | """ | |
893 | Protected slot to create a new file. | |
894 | """ | |
895 | index = self.currentIndex() | |
896 | if index.isValid(): | |
897 | dname = self.model().item(index).dirName() | |
898 | fname, ok = QInputDialog.getText( | |
899 | self, | |
900 | self.tr("New File"), | |
901 | self.tr("Name for new file:"), | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
902 | QLineEdit.EchoMode.Normal) |
8114 | 903 | if ok and bool(fname): |
904 | filepath = os.path.join(dname, fname) | |
905 | if os.path.exists(filepath): | |
906 | E5MessageBox.warning( | |
907 | self, | |
908 | self.tr("New File"), | |
909 | self.tr("A file or directory named <b>{0}</b> exists" | |
910 | " already. Aborting...") | |
911 | .format(fname)) | |
912 | else: | |
913 | try: | |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
914 | with open(filepath, "w"): |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
915 | pass |
8114 | 916 | except OSError as err: |
917 | E5MessageBox.critical( | |
918 | self, | |
919 | self.tr("New File"), | |
920 | self.tr("<p>The file <b>{0}</b> could not be" | |
921 | " created.</p><p>Reason: {1}</p>") | |
922 | .format(fname, str(err))) | |
923 | ||
924 | @pyqtSlot() | |
925 | def _deleteFileOrDirectory(self): | |
926 | """ | |
927 | Protected slot to delete a directory or file. | |
928 | """ | |
929 | index = self.currentIndex() | |
930 | if index.isValid(): | |
931 | itm = self.model().item(index) | |
932 | if itm.type() == BrowserItemDirectory: | |
933 | self.__deleteDirectory(itm.dirName()) | |
934 | else: | |
935 | self.__deleteFile(itm.fileName()) | |
936 | ||
937 | def __deleteFile(self, fn): | |
938 | """ | |
939 | Private method to delete a file. | |
940 | ||
941 | @param fn filename to be deleted | |
942 | @type str | |
943 | """ | |
944 | try: | |
8258
82b608e352ec
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8228
diff
changeset
|
945 | from send2trash import send2trash as s2t |
8114 | 946 | trashMsg = self.tr("Do you really want to move this file to the" |
947 | " trash?") | |
948 | except ImportError: | |
949 | s2t = os.remove | |
950 | trashMsg = self.tr("Do you really want to delete this file?") | |
951 | ||
952 | from UI.DeleteFilesConfirmationDialog import ( | |
953 | DeleteFilesConfirmationDialog | |
954 | ) | |
955 | dlg = DeleteFilesConfirmationDialog( | |
956 | self.parent(), | |
957 | self.tr("Delete File"), | |
958 | trashMsg, | |
959 | [fn]) | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
960 | if dlg.exec() == QDialog.DialogCode.Accepted: |
8114 | 961 | try: |
962 | s2t(fn) | |
963 | except OSError as err: | |
964 | E5MessageBox.critical( | |
965 | self.ui, | |
966 | self.tr("Delete File"), | |
967 | self.tr( | |
968 | "<p>The selected file <b>{0}</b> could not be" | |
969 | " deleted.</p><p>Reason: {1}</p>") | |
970 | .format(fn, str(err)) | |
971 | ) | |
972 | ||
973 | def __deleteDirectory(self, dn): | |
974 | """ | |
975 | Private method to delete a directory. | |
976 | ||
977 | @param dn directory name to be removed from the project | |
978 | @type str | |
979 | """ | |
980 | try: | |
8258
82b608e352ec
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8228
diff
changeset
|
981 | from send2trash import send2trash |
8114 | 982 | s2tAvailable = True |
983 | trashMsg = self.tr("Do you really want to move this directory to" | |
984 | " the trash?") | |
985 | except ImportError: | |
986 | s2tAvailable = False | |
987 | trashMsg = self.tr("Do you really want to delete this directory?") | |
988 | ||
989 | from UI.DeleteFilesConfirmationDialog import ( | |
990 | DeleteFilesConfirmationDialog | |
991 | ) | |
992 | dlg = DeleteFilesConfirmationDialog( | |
993 | self.parent(), | |
994 | self.tr("Delete Directory"), | |
995 | trashMsg, | |
996 | [dn]) | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
997 | if dlg.exec() == QDialog.DialogCode.Accepted: |
8114 | 998 | try: |
999 | if s2tAvailable: | |
1000 | send2trash(dn) | |
1001 | else: | |
1002 | shutil.rmtree(dn, True) | |
1003 | except OSError as err: | |
1004 | E5MessageBox.critical( | |
1005 | self.ui, | |
1006 | self.tr("Delete Directory"), | |
1007 | self.tr( | |
1008 | "<p>The selected directory <b>{0}</b> could not be" | |
1009 | " deleted.</p><p>Reason: {1}</p>") | |
1010 | .format(dn, str(err)) | |
1011 | ) | |
1012 | ||
1013 | @pyqtSlot() | |
1014 | def __deleteMultiple(self): | |
1015 | """ | |
1016 | Private slot to delete multiple directories and files. | |
1017 | ||
1018 | Note: The context menu for multi selection is only shown for file | |
1019 | items. | |
1020 | """ | |
1021 | fileNames = [] | |
1022 | for itm in self.getSelectedItems(): | |
1023 | fileNames.append(itm.fileName()) | |
1024 | ||
1025 | try: | |
8258
82b608e352ec
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8228
diff
changeset
|
1026 | from send2trash import send2trash as s2t |
8114 | 1027 | trashMsg = self.tr("Do you really want to move these files to the" |
1028 | " trash?") | |
1029 | except ImportError: | |
1030 | s2t = os.remove | |
1031 | trashMsg = self.tr("Do you really want to delete these files?") | |
1032 | ||
1033 | from UI.DeleteFilesConfirmationDialog import ( | |
1034 | DeleteFilesConfirmationDialog | |
1035 | ) | |
1036 | dlg = DeleteFilesConfirmationDialog( | |
1037 | self.parent(), | |
1038 | self.tr("Delete Files"), | |
1039 | trashMsg, | |
1040 | sorted(fileNames) | |
1041 | ) | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8114
diff
changeset
|
1042 | if dlg.exec() == QDialog.DialogCode.Accepted: |
8114 | 1043 | for fn in fileNames: |
1044 | try: | |
1045 | s2t(fn) | |
1046 | except OSError as err: | |
1047 | E5MessageBox.critical( | |
1048 | self.ui, | |
1049 | self.tr("Delete File"), | |
1050 | self.tr( | |
1051 | "<p>The selected file <b>{0}</b> could not be" | |
1052 | " deleted.</p><p>Reason: {1}</p>") | |
1053 | .format(fn, str(err)) | |
1054 | ) |