src/eric7/UI/Browser.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11218
43dfc40728d2
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

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
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10949
diff changeset
3 # Copyright (c) 2002 - 2025 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
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
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 (
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
14 QCoreApplication,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
15 QElapsedTimer,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
16 QItemSelectionModel,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
17 Qt,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18 QUrl,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
19 pyqtSignal,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
20 pyqtSlot,
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
21 )
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
22 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
23 from PyQt6.QtWidgets import (
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
24 QAbstractItemView,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
25 QApplication,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
26 QDialog,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
27 QInputDialog,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
28 QLineEdit,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
29 QMenu,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
30 QTreeView,
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
31 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9615
diff changeset
33 from eric7 import Preferences
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
34 from eric7.EricGui import EricPixmapCache
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
35 from eric7.EricWidgets import EricFileDialog, EricMessageBox
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9278
diff changeset
36 from eric7.EricWidgets.EricApplication import ericApp
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
37 from eric7.Project.ProjectBrowserModel import ProjectBrowserSimpleDirectoryItem
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
38 from eric7.RemoteServerInterface import EricServerFileDialog
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9615
diff changeset
39 from eric7.SystemUtilities import FileSystemUtilities
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
40 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
41 from eric7.Utilities import MimeTypes
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
43 from .BrowserModel import (
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
44 BrowserClassAttributeItem,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
45 BrowserClassItem,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
46 BrowserDirectoryItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47 BrowserFileItem,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
48 BrowserGlobalsItem,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
49 BrowserImportItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
50 BrowserImportsItem,
10470
cd7bfd539ac9 Changed the browser item types to an enum in BrowserModel and ProjectBrowserModel.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
51 BrowserItemType,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
52 BrowserMethodItem,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
53 BrowserModel,
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
54 BrowserSimpleDirectoryItem,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55 BrowserSysPathItem,
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
56 )
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
57 from .BrowserSortFilterProxyModel import BrowserSortFilterProxyModel
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
59
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 class Browser(QTreeView):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
62 Class used to display a file system tree.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
63
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 Via the context menu that
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 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
66 the selected file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
67
10673
214deec16021 Corrected some code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
68 @signal sourceFile(filename) emitted to open a Python file at the first line (str)
5726
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5674
diff changeset
69 @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
70 line (str, int)
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5674
diff changeset
71 @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
72 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
73 @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
74 a list of lines(str, list)
10677
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
75 @signal sourceFile(filename, lineno, col_offset) emitted to open a Python file at a
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
76 line and column (str, int, int)
5726
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5674
diff changeset
77 @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
78 @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
79 file (str)
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5674
diff changeset
80 @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
81 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
82 @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
83 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
84 (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
85 @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
86 @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
87 file (str)
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5674
diff changeset
88 @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
89 @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
90 @signal svgFile(filename) emitted to open a SVG file (str)
8282
16b243bdb12f UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8270
diff changeset
91 @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
92 @signal binaryFile(filename) emitted to open a file as binary (str)
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
93 @signal testFile(filename) emitted to open a Python file for a
5726
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5674
diff changeset
94 unit test (str)
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
95 @signal pdfFile(filename) emitted to open a PDF file (str)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
97
10677
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
98 sourceFile = pyqtSignal(
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
99 (str,), (str, int), (str, int, int), (str, list), (str, int, str)
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
100 )
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
101 designerFile = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
102 linguistFile = pyqtSignal(str)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
103 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
104 projectFile = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
105 multiProjectFile = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
106 pixmapFile = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
107 pixmapEditFile = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
108 svgFile = pyqtSignal(str)
8282
16b243bdb12f UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8270
diff changeset
109 umlFile = pyqtSignal(str)
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
110 binaryFile = pyqtSignal(str)
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
111 pdfFile = pyqtSignal(str)
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
112 testFile = pyqtSignal(str)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
113
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
114 def __init__(self, serverInterface, parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
117
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
118 @param serverInterface reference to the 'eric-ide' server interface object
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
119 @type EricServerInterface
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
120 @param parent parent widget
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
121 @type QWidget
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
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
123 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
124
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
125 self.setWindowTitle(QCoreApplication.translate("Browser", "File-Browser"))
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9278
diff changeset
126 self.setWindowIcon(EricPixmapCache.getIcon("eric"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
127
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
128 self.__ericServerInterface = serverInterface
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
129 self.__remotefsInterface = serverInterface.getServiceInterface("FileSystem")
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
130
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
131 self.__model = BrowserModel(fsInterface=self.__remotefsInterface)
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
132 self.__sortModel = BrowserSortFilterProxyModel(remoteServer=serverInterface)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.__sortModel.setSourceModel(self.__model)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 self.setModel(self.__sortModel)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
135
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 self.selectedItemsFilter = [BrowserFileItem]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
137
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
138 self._activating = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
139
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
140 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
141 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
142 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
143 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
144 self.collapsed.connect(self._resizeColumns)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
145
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
146 self.setWhatsThis(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
147 QCoreApplication.translate(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
148 "Browser",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
149 """<b>The Browser Window</b>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
150 """<p>This allows you to easily navigate the hierarchy of"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151 """ directories and files on your system, identify the Python"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
152 """ programs and open them up in a Source Viewer window. The"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153 """ window displays several separate hierarchies.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154 """<p>The first hierarchy is only shown if you have opened a"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
155 """ program for debugging and its root is the directory"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
156 """ containing that program. Usually all of the separate files"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
157 """ that make up a Python application are held in the same"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
158 """ directory, so this hierarchy gives you easy access to most"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159 """ of what you will need.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
160 """<p>The next hierarchy is used to easily navigate the"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161 """ directories that are specified in the Python"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
162 """ <tt>sys.path</tt> variable.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
163 """<p>The remaining hierarchies allow you navigate your system"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
164 """ as a whole. On a UNIX system there will be a hierarchy with"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
165 """ <tt>/</tt> at its root and another with the user home"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
166 """ directory. On a Windows system there will be a hierarchy for"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167 """ each drive on the"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
168 """ system.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
169 """<p>Python programs (i.e. those with a <tt>.py</tt> file name"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
170 """ suffix) are identified in the hierarchies with a Python"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
171 """ icon. The right mouse button will popup a menu which lets"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172 """ you open the file in a Source Viewer window, open the file"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
173 """ for debugging or use it for a test run.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
174 """<p>The context menu of a class, function or method allows you"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
175 """ to open the file defining this class, function or method and"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
176 """ will ensure, that the correct source line is visible.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
177 """<p>Qt-Designer files (i.e. those with a <tt>.ui</tt> file"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
178 """ name suffix) are shown with a Designer icon. The context"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
179 """ menu of these files allows you to start Qt-Designer with"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
180 """ that file.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
181 """<p>Qt-Linguist files (i.e. those with a <tt>.ts</tt> file"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
182 """ name suffix) are shown with a Linguist icon. The context"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
183 """ menu of these files allows you to start Qt-Linguist with"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
184 """ that file.</p>""",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
185 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
187
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 self.__createPopupMenus()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
189
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
190 self._init() # perform common initialization tasks
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
191
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
192 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
193 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
194 self._keyboardSearchTimer.invalidate()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
195
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 def _init(self):
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 Protected method to perform initialization tasks common to this
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 base class and all derived classes.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 self.setRootIsDecorated(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 self.setAlternatingRowColors(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
203
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 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
205 header.setSortIndicator(0, Qt.SortOrder.AscendingOrder)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 header.setSortIndicatorShown(True)
7198
684261ef2165 Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7055
diff changeset
207 header.setSectionsClickable(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
208
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 self.setSortingEnabled(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
210
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
211 self.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
212 self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
213
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 self.layoutDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
215
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 def layoutDisplay(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 Public slot to perform a layout operation.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 """
10383
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
220 self._resizeColumns()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 self._resort()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
222
10383
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
223 @pyqtSlot()
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
224 def _resizeColumns(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 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
227 """
10378
cbbcecf9b25e Changed code to cope with a changed behavior of Qt 6.1.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
228 self.resizeColumnToContents(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
229
10383
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
230 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 def _resort(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 Protected slot to resort the tree.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
235 self.model().sort(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
236 self.header().sortIndicatorSection(), self.header().sortIndicatorOrder()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
237 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
238
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 def __createPopupMenus(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 Private method to generate the various popup menus.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 """
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
243 self.showHiddenFilesAct = QAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
244 QCoreApplication.translate("Browser", "Show Hidden Files")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
245 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
246 self.showHiddenFilesAct.setCheckable(True)
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
247 self.showHiddenFilesAct.toggled.connect(self._showHidden)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
248 self.showHiddenFilesAct.setChecked(Preferences.getUI("BrowsersListHiddenFiles"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
249
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
250 self.__newMenu = QMenu(QCoreApplication.translate("Browser", "New"), self)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
251 self.__newMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
252 QCoreApplication.translate("Browser", "Directory"), self._newDirectory
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
253 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
254 self.__newMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
255 QCoreApplication.translate("Browser", "File"), self._newFile
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
256 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
257
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 # create the popup menu for source files
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 self.sourceMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
260 self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
261 QCoreApplication.translate("Browser", "Open"), self._openItem
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
262 )
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
263 self.testingAct = self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
264 QCoreApplication.translate("Browser", "Run Test..."), self.handleTesting
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
265 )
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
266 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
267 self.mimeTypeAct = self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
268 QCoreApplication.translate("Browser", "Show Mime-Type"), self.__showMimeType
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
269 )
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
270 self.sourceMenu.addSeparator()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
272 QCoreApplication.translate("Browser", "Refresh Source File"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
273 self.__refreshSource,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
274 )
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
275 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
276 self.sourceMenu.addAction(
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
277 QCoreApplication.translate("Browser", "Show in File Manager"),
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
278 self._showInFileManager,
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
279 )
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
280 self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
281 QCoreApplication.translate("Browser", "Copy Path to Clipboard"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
282 self._copyToClipboard,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
283 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
284 self.sourceMenu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
285 self.sourceMenu.addAction(self.showHiddenFilesAct)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
286 self.sourceMenu.addSeparator()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
287 self.sourceMenu.addMenu(self.__newMenu)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
288 self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
289 QCoreApplication.translate("Browser", "Delete"), self._deleteFileOrDirectory
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
290 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
291
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 # create the popup menu for general use
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 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
294 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
295 QCoreApplication.translate("Browser", "Open"), self._openItem
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
296 )
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
297 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
298 QCoreApplication.translate("Browser", "Open in Hex Editor"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
299 self._openHexEditor,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
300 )
3012
d177226027e2 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
301 self.editPixmapAct = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
302 QCoreApplication.translate("Browser", "Open in Icon Editor"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
303 self._editPixmap,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
304 )
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
305 self.openInEditorAct = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
306 QCoreApplication.translate("Browser", "Open in Editor"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
307 self._openFileInEditor,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
308 )
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
309 self.openInPdfViewerAct = self.menu.addAction(
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
310 QCoreApplication.translate("Browser", "Open in PDF Viewer"),
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
311 self._openPdfViewer,
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
312 )
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
313 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
314 self.mimeTypeAct = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
315 QCoreApplication.translate("Browser", "Show Mime-Type"), self.__showMimeType
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
316 )
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
317 self.menu.addSeparator()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 self.menu.addAction(
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
319 QCoreApplication.translate("Browser", "Show in File Manager"),
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
320 self._showInFileManager,
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
321 )
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
322 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
323 QCoreApplication.translate("Browser", "Copy Path to Clipboard"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
324 self._copyToClipboard,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
325 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
326 self.menu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
327 self.menu.addAction(self.showHiddenFilesAct)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
328 self.menu.addSeparator()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
329 self.menu.addMenu(self.__newMenu)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
330 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
331 QCoreApplication.translate("Browser", "Delete"), self._deleteFileOrDirectory
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
332 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
333
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 # create the menu for multiple selected files
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 self.multiMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
336 self.multiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
337 QCoreApplication.translate("Browser", "Open"), self._openItem
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
338 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
339 self.multiMenu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
340 self.multiMenu.addAction(self.showHiddenFilesAct)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
341 self.multiMenu.addSeparator()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
342 self.multiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
343 QCoreApplication.translate("Browser", "Delete"), self.__deleteMultiple
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
344 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
345
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 # create the directory menu
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 self.dirMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
348 self.dirMenu.addAction(
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
349 QCoreApplication.translate("Browser", "New Top Level Directory..."),
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
350 self.__newTopLevelDir,
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
351 )
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
352 self.__dmRemoteTopLevelAct = self.dirMenu.addAction(
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
353 QCoreApplication.translate("Browser", "New Remote Top Level Directory..."),
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
354 self.__newRemoteTopLevelDir,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
355 )
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
356 self.addAsTopLevelAct = self.dirMenu.addAction(
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
357 QCoreApplication.translate("Browser", "Add as top level directory"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
358 self.__addAsToplevelDir,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
359 )
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
360 self.removeFromToplevelAct = self.dirMenu.addAction(
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
361 QCoreApplication.translate("Browser", "Remove from top level"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
362 self.__removeToplevel,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
363 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 self.dirMenu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
365 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
366 QCoreApplication.translate("Browser", "Refresh directory"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
367 self.__refreshDirectory,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
368 )
233
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
369 self.dirMenu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
370 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
371 QCoreApplication.translate("Browser", "Find in this directory"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
372 self.__findInDirectory,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
373 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
374 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
375 QCoreApplication.translate("Browser", "Find && Replace in this directory"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
376 self.__replaceInDirectory,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
377 )
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
378 self.dirMenu.addSeparator()
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
379 self.dirMenu.addAction(
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
380 QCoreApplication.translate("Browser", "Show in File Manager"),
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
381 self._showInFileManager,
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
382 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
384 QCoreApplication.translate("Browser", "Copy Path to Clipboard"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
385 self._copyToClipboard,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
386 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
387 self.dirMenu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
388 self.dirMenu.addAction(self.showHiddenFilesAct)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
389 self.dirMenu.addSeparator()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
390 self.dirMenu.addMenu(self.__newMenu)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
391 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
392 QCoreApplication.translate("Browser", "Delete"), self._deleteFileOrDirectory
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
393 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
394
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
395 # create the attribute menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
396 self.gotoMenu = QMenu(QCoreApplication.translate("Browser", "Goto"), self)
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
397 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
398 self.gotoMenu.triggered.connect(self._gotoAttribute)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
399
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
400 self.attributeMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
401 self.attributeMenu.addAction(
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
402 QCoreApplication.translate("Browser", "New Top Level Directory..."),
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
403 self.__newTopLevelDir,
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
404 )
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
405 self.__amRemoteTopLevelAct = self.attributeMenu.addAction(
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
406 QCoreApplication.translate("Browser", "New Remote Top Level Directory..."),
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
407 self.__newRemoteTopLevelDir,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
408 )
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
409 self.attributeMenu.addSeparator()
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
410 self.attributeMenu.addMenu(self.gotoMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
411
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 # create the background menu
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 self.backMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
414 self.backMenu.addAction(
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
415 QCoreApplication.translate("Browser", "New Top Level Directory..."),
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
416 self.__newTopLevelDir,
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
417 )
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
418 self.__bmRemoteTopLevelAct = self.backMenu.addAction(
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
419 QCoreApplication.translate("Browser", "New Remote Top Level Directory..."),
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
420 self.__newRemoteTopLevelDir,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
421 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
422 self.backMenu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
423 self.backMenu.addAction(self.showHiddenFilesAct)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 def mouseDoubleClickEvent(self, mouseEvent):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
427 Protected method of QAbstractItemView.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
428
3012
d177226027e2 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
429 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
430 double-clicking. Instead the double-clicked entry is opened.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
431
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
432 @param mouseEvent the mouse event
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
433 @type QMouseEvent
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 """
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
435 index = self.indexAt(mouseEvent.position().toPoint())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 if index.isValid():
4528
63154a5e18d0 Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4186
diff changeset
437 itm = self.model().item(index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
438 if isinstance(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
439 itm,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
440 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
441 BrowserDirectoryItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
442 BrowserImportsItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
443 ProjectBrowserSimpleDirectoryItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
444 BrowserSysPathItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
445 BrowserGlobalsItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
446 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
447 ):
4528
63154a5e18d0 Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4186
diff changeset
448 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
449 else:
63154a5e18d0 Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4186
diff changeset
450 self._openItem()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
451
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 def _contextMenuRequested(self, coord):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453 """
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
454 Protected slot to show the context menu of the list view.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
455
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
456 @param coord the position of the mouse pointer
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
457 @type QPoint
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
458 """
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
459 categories = self.getSelectedItemsCountCategorized(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
460 [BrowserDirectoryItem, BrowserFileItem, BrowserClassItem, BrowserMethodItem]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
461 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
462 cnt = categories["sum"]
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
463 bfcnt = categories[str(BrowserFileItem)]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 if cnt > 1 and cnt == bfcnt:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
465 self.multiMenu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 index = self.indexAt(coord)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
468
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 if index.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470 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
471 flags = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
472 QItemSelectionModel.SelectionFlag.ClearAndSelect
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
473 | QItemSelectionModel.SelectionFlag.Rows
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
474 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
475 self.selectionModel().select(index, flags)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
476
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 itm = self.model().item(index)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
478 coord = self.mapToGlobal(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 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
480 if itm.isPython3File():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
481 if itm.fileName().endswith(".py"):
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
482 self.testingAct.setEnabled(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
483 else:
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
484 self.testingAct.setEnabled(False)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485 self.sourceMenu.popup(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
486 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 self.editPixmapAct.setVisible(itm.isPixmapFile())
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
488 self.openInEditorAct.setVisible(itm.isSvgFile())
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
489 self.openInPdfViewerAct.setVisible(itm.isPdfFile())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
490 self.menu.popup(coord)
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
491 elif isinstance(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
492 itm, (BrowserClassItem, BrowserMethodItem, BrowserImportItem)
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
493 ):
4183
856ba07de877 Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4101
diff changeset
494 self.editPixmapAct.setVisible(False)
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
495 self.openInPdfViewerAct.setVisible(False)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 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
497 elif isinstance(itm, BrowserClassAttributeItem):
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
498 self.__amRemoteTopLevelAct.setEnabled(
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
499 self.__ericServerInterface.isServerConnected()
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
500 )
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
501 self.attributeMenu.popup(coord)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
502 elif isinstance(itm, BrowserDirectoryItem):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
503 if not index.parent().isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
504 self.removeFromToplevelAct.setEnabled(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
505 self.addAsTopLevelAct.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
506 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
507 self.removeFromToplevelAct.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
508 self.addAsTopLevelAct.setEnabled(True)
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
509 self.__dmRemoteTopLevelAct.setEnabled(
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
510 self.__ericServerInterface.isServerConnected()
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
511 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
512 self.dirMenu.popup(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
513 else:
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
514 self.__bmRemoteTopLevelAct.setEnabled(
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
515 self.__ericServerInterface.isServerConnected()
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
516 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
517 self.backMenu.popup(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
518 else:
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
519 self.__bmRemoteTopLevelAct.setEnabled(
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
520 self.__ericServerInterface.isServerConnected()
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
521 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
522 self.backMenu.popup(self.mapToGlobal(coord))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
523
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
524 def _showGotoMenu(self):
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
525 """
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
526 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
527 """
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
528 self.gotoMenu.clear()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
529
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
530 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
531 linenos = itm.linenos()
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
532 fileName = itm.fileName()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
533
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
534 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
535 act = self.gotoMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
536 QCoreApplication.translate("Browser", "Line {0}").format(lineno)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
537 )
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
538 act.setData([fileName, lineno])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
539
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
540 def _gotoAttribute(self, act):
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
541 """
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
542 Protected slot to handle the selection of the goto menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
543
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
544 @param act reference to the action
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
545 @type EricAction
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
546 """
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
547 fileName, lineno = act.data()
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
548 self.sourceFile[str, int].emit(fileName, lineno)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
549
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
550 def handlePreferencesChanged(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 Public slot used to handle the preferencesChanged signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
554 self.model().preferencesChanged()
10383
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
555 self.layoutDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
556
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557 def _openItem(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 Protected slot to handle the open popup menu entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560 """
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
561 itmList = self.getSelectedItems(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
562 [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
563 BrowserFileItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
564 BrowserClassItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
565 BrowserMethodItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
566 BrowserClassAttributeItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
567 BrowserImportItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
568 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
569 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
570
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
571 if not self._activating:
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
572 self._activating = True
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
573 for itm in itmList:
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
574 if isinstance(itm, BrowserFileItem):
9615
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
575 if (
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
576 itm.isPython3File()
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
577 or itm.isResourcesFile()
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
578 or itm.isParsableFile()
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
579 ):
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
580 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
581 elif itm.isRubyFile():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
582 self.sourceFile[str, int, str].emit(itm.fileName(), -1, "Ruby")
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
583 elif itm.isDFile():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
584 self.sourceFile[str, int, str].emit(itm.fileName(), -1, "D")
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
585 elif itm.isDesignerFile():
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
586 self.designerFile.emit(itm.fileName())
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
587 elif itm.isLinguistFile():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
588 if itm.fileExt() == ".ts":
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
589 self.linguistFile.emit(itm.fileName())
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
590 else:
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
591 self.trpreview.emit([itm.fileName()])
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
592 elif itm.isProjectFile():
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
593 self.projectFile.emit(itm.fileName())
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
594 elif itm.isMultiProjectFile():
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
595 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
596 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
597 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
598 elif itm.isPixmapFile():
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
599 self.pixmapFile.emit(itm.fileName())
8282
16b243bdb12f UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8270
diff changeset
600 elif itm.isEricGraphicsFile():
16b243bdb12f UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8270
diff changeset
601 self.umlFile.emit(itm.fileName())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 else:
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9278
diff changeset
603 if MimeTypes.isTextFile(itm.fileName()):
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
604 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
605 else:
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
606 QDesktopServices.openUrl(QUrl(itm.fileName()))
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
607 elif isinstance(itm, BrowserClassItem):
10677
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
608 self.sourceFile[str, int, int].emit(
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
609 itm.fileName(), itm.lineno(), itm.colOffset()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
610 )
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
611 elif isinstance(itm, BrowserMethodItem):
10677
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
612 self.sourceFile[str, int, int].emit(
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
613 itm.fileName(), itm.lineno(), itm.colOffset()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
614 )
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
615 elif isinstance(itm, BrowserClassAttributeItem):
10677
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
616 self.sourceFile[str, int, int].emit(
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
617 itm.fileName(), itm.lineno(), itm.colOffset()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
618 )
4183
856ba07de877 Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4101
diff changeset
619 elif isinstance(itm, BrowserImportItem):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
620 self.sourceFile[str, list].emit(itm.fileName(), itm.linenos())
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
621 self._activating = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
622
10396
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
623 def _showInFileManager(self):
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
624 """
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
625 Protected method to show the selected items path in a file manager application.
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
626 """
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
627 itmList = self.getSelectedItems(
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
628 [
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
629 BrowserFileItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
630 BrowserClassItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
631 BrowserMethodItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
632 BrowserClassAttributeItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
633 BrowserImportItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
634 BrowserDirectoryItem,
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
635 BrowserSimpleDirectoryItem,
10396
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
636 ]
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
637 )
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
638 for itm in itmList:
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
639 directory = (
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
640 itm.dirName()
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
641 if isinstance(itm, (BrowserDirectoryItem, BrowserSimpleDirectoryItem))
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
642 else os.path.dirname(itm.fileName())
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
643 )
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
644 if FileSystemUtilities.isRemoteFileName(directory):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
645 EricMessageBox.critical(
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
646 self,
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
647 self.tr("Show in File Manager"),
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
648 self.tr(
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
649 "Directories accessed through an eric-ide server cannot be"
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
650 " opened in a file manager application. Aborting..."
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
651 ),
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
652 )
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
653 return
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
654
10397
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
655 ok = FileSystemUtilities.startfile(directory)
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
656
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
657 if not ok:
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
658 EricMessageBox.warning(
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
659 self,
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
660 self.tr("Show in File Manager"),
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
661 self.tr(
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
662 "<p>The directory of the selected item (<b>{0}</b>) cannot be"
10397
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
663 " shown in a file manager application.</p>"
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
664 ).format(directory),
f60464a5f7ea Modified the last implementation to work on Windows as well and made the code more robust against errors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10396
diff changeset
665 )
10396
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
666
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
667 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
668 """
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
669 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
670 """
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
671 itmList = self.getSelectedItems(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
672 [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
673 BrowserFileItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
674 BrowserClassItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
675 BrowserMethodItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
676 BrowserClassAttributeItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
677 BrowserImportItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
678 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
679 )
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
680 if itmList:
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9278
diff changeset
681 mimetype = MimeTypes.mimeType(itmList[0].fileName())
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
682 if mimetype is None:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
683 EricMessageBox.warning(
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
684 self,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
685 QCoreApplication.translate("Browser", "Show Mime-Type"),
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
686 QCoreApplication.translate(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
687 "Browser",
9573
9960d19d66b5 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
688 """The mime type of the file could not be determined.""",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
689 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
690 )
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
691 elif mimetype.split("/")[0] == "text":
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
692 EricMessageBox.information(
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
693 self,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
694 QCoreApplication.translate("Browser", "Show Mime-Type"),
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
695 QCoreApplication.translate(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
696 "Browser", """The file has the mime type <b>{0}</b>."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
697 ).format(mimetype),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
698 )
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
699 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
700 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
701 if mimetype in textMimeTypesList:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
702 EricMessageBox.information(
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
703 self,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
704 QCoreApplication.translate("Browser", "Show Mime-Type"),
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
705 QCoreApplication.translate(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
706 "Browser", """The file has the mime type <b>{0}</b>."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
707 ).format(mimetype),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
708 )
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
709 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
710 ok = EricMessageBox.yesNo(
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
711 self,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
712 QCoreApplication.translate("Browser", "Show Mime-Type"),
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
713 QCoreApplication.translate(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
714 "Browser",
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
715 """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
716 """<br/> Shall it be added to the list of"""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
717 """ text mime types?""",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
718 ).format(mimetype),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
719 )
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
720 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
721 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
722 Preferences.setUI("TextMimeTypes", textMimeTypesList)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
723
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
724 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
725 """
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
726 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
727 """
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
728 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
729 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
730 self.__model.repopulateFileItem(itmList[0])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
731
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 def _editPixmap(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 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
735 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736 itmList = self.getSelectedItems([BrowserFileItem])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
737
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
738 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
739 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
740 self.pixmapEditFile.emit(itm.fileName())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
741
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
742 def _openHexEditor(self):
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
743 """
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
744 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
745 """
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
746 itmList = self.getSelectedItems([BrowserFileItem])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
747
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
748 for itm in itmList:
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
749 if isinstance(itm, BrowserFileItem):
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
750 self.binaryFile.emit(itm.fileName())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
751
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
752 def _openPdfViewer(self):
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
753 """
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
754 Protected slot to handle the open in PDF viewer popup menu entry.
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
755 """
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
756 itmList = self.getSelectedItems([BrowserFileItem])
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
757
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
758 for itm in itmList:
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
759 if isinstance(itm, BrowserFileItem):
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
760 self.pdfFile.emit(itm.fileName())
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
761
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
762 def _openFileInEditor(self):
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
763 """
8925
8375eb895f70 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8909
diff changeset
764 Protected slot to handle the Open in Editor menu action.
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
765 """
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
766 itmList = self.getSelectedItems([BrowserFileItem])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
767
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
768 for itm in itmList:
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9278
diff changeset
769 if MimeTypes.isTextFile(itm.fileName()):
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
770 self.sourceFile.emit(itm.fileName())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
771
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
772 def _copyToClipboard(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
773 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 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
775 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
776 itm = self.model().item(self.currentIndex())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
777 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
778 fn = itm.fileName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
779 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
780 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
781 fn = itm.dirName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
782 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
783 fn = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
784
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
785 if fn:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
786 cb = QApplication.clipboard()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
787 cb.setText(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
788
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
789 @pyqtSlot(bool)
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
790 def _showHidden(self, checked):
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
791 """
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
792 Protected slot to show or hide hidden files.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
793
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
794 @param checked flag indicating the state of the action
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
795 @type bool
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
796 """
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
797 self.__sortModel.setShowHiddenFiles(checked)
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
798 # remember the current state
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
799 Preferences.setUI("BrowsersListHiddenFiles", checked)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
800
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
801 @pyqtSlot()
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
802 def handleTesting(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 """
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
804 Public slot to handle the testing popup menu entry.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
805 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
806 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
807 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
808 itm = self.model().item(index)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
809 pyfn = itm.fileName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
810 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
811 pyfn = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
812
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
813 if pyfn is not None:
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
814 self.testFile.emit(pyfn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
815
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
816 @pyqtSlot()
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
817 def __newTopLevelDir(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
818 """
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
819 Private slot to handle the New Top Level Directory popup menu entry.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
821 dname = EricFileDialog.getExistingDirectory(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
822 None,
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
823 QCoreApplication.translate("Browser", "New Top Level Directory"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
824 "",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
825 EricFileDialog.ShowDirsOnly,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
826 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 if dname:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9615
diff changeset
828 dname = os.path.abspath(FileSystemUtilities.toNativeSeparators(dname))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829 self.__model.addTopLevelDir(dname)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
830
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
831 @pyqtSlot()
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
832 def __newRemoteTopLevelDir(self):
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
833 """
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
834 Private slot to handle the New Remote Top Level Directory popup menu entry.
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
835 """
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
836 dname = EricServerFileDialog.getExistingDirectory(
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
837 None,
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
838 QCoreApplication.translate("Browser", "New Remote Top Level Directory"),
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
839 "",
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
840 dirsOnly=True,
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
841 )
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
842 if dname:
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
843 self.__model.addTopLevelDir(dname)
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
844
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
845 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
846 def __removeToplevel(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
847 """
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
848 Private slot to handle the Remove from top level popup menu entry.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
849 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
850 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
851 sindex = self.model().mapToSource(index)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 self.__model.removeToplevelDir(sindex)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
853
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
854 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
855 def __addAsToplevelDir(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
856 """
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
857 Private slot to handle the Add as top level directory popup menu entry.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
858 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
859 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
860 dname = self.model().item(index).dirName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
861 self.__model.addTopLevelDir(dname)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
862
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
863 @pyqtSlot()
233
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
864 def __refreshDirectory(self):
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
865 """
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
866 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
867 """
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
868 index = self.currentIndex()
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
869 self.__model.refreshDirectory(self.model().mapToSource(index))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
870
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
871 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
872 def __findInDirectory(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
873 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
874 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
875 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
876 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
877 searchDir = self.model().item(index).dirName()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
878
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
879 ericApp().getObject("UserInterface").showFindFilesWidget(searchDir=searchDir)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
880
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
881 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
882 def __replaceInDirectory(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
883 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
884 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
885 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
886 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
887 searchDir = self.model().item(index).dirName()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
888
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
889 ericApp().getObject("UserInterface").showReplaceFilesWidget(searchDir=searchDir)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
890
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
891 @pyqtSlot(str)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
892 def handleProgramChange(self, fn):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
893 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
894 Public slot to handle the programChange signal.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
895
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
896 @param fn file name
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
897 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
898 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
899 self.__model.programChange(os.path.dirname(fn))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
900
10592
2bada76be1a6 Adapted the file browser incl. the class browsers to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10470
diff changeset
901 @pyqtSlot(str)
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
902 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
903 """
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
904 Public slot to handle a change of the debug client's interpreter.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
905
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
906 @param interpreter interpreter of the debug client
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
907 @type str
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
908 """
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
909 self.__model.interpreterChanged(interpreter)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
910
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
911 def wantedItem(self, itm, filterList=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
912 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
913 Public method to check type of an item.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
914
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
915 @param itm the item to check
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
916 @type BrowserItem
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
917 @param filterList list of classes to check against
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
918 @type list of Class
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
919 @return flag indicating item is a valid type
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
920 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
921 """
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
922 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
923 filterList = self.selectedItemsFilter
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
924
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
925 return any(isinstance(itm, typ) for typ in filterList)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
926
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
927 def getSelectedItems(self, filterList=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
928 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
929 Public method to get the selected items.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
930
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
931 @param filterList list of classes to check against
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
932 @type list of Class
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
933 @return list of selected items
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
934 @rtype list of BrowserItem
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
935 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
936 selectedItems = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
937 indexes = self.selectedIndexes()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 for index in indexes:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
939 if index.column() == 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
940 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
941 if self.wantedItem(itm, filterList):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 selectedItems.append(itm)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
943 return selectedItems
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
944
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
945 def getSelectedItemsCount(self, filterList=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
946 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
947 Public method to get the count of items selected.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
948
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
949 @param filterList list of classes to check against
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
950 @type list of Class
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
951 @return count of items selected
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
952 @rtype int
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
953 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
954 count = 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
955 indexes = self.selectedIndexes()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
956 for index in indexes:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
957 if index.column() == 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958 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
959 if self.wantedItem(itm, filterList):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
960 count += 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
961 return count
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
962
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
963 def getSelectedItemsCountCategorized(self, filterList=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
964 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
965 Public method to get a categorized count of selected items.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
966
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
967 @param filterList list of classes to check against
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
968 @type list of Class
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
969 @return a dictionary containing the counts of items belonging
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
970 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
971 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
972 filter (i.e. str(filterClass)). The dictionary contains
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
973 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
974 all selected entries fulfilling the filter criteria.
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
975 @rtype dict
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
976 """
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
977 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
978 filterList = self.selectedItemsFilter
9278
36448ca469c2 Simplified some code iaw. recommendations of the extended style checker and reformatted the code with black.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
979 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
980 for typ in filterList:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
981 categories[str(typ)] = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
982
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
983 indexes = self.selectedIndexes()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
984 for index in indexes:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
985 if index.column() == 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
986 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
987 for typ in filterList:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
988 if isinstance(itm, typ):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
989 categories["sum"] += 1
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
990 categories[str(typ)] += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
991
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
992 return categories
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
993
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
994 def saveToplevelDirs(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
995 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
996 Public slot to save the toplevel directories.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
997 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
998 self.__model.saveToplevelDirs()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
999
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
1000 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
1001 """
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
1002 Public function to search the tree via the keyboard.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1003
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
1004 @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
1005 @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
1006 """
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
1007 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
1008 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1009
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
1010 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
1011 self.currentIndex()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1012 if self.currentIndex().isValid()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1013 else self.model().index(0, 0)
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
1014 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1015
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
1016 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
1017 keyboardSearchTimeElapsed = self._keyboardSearchTimer.restart()
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1018 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1019 not search
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1020 or not keyboardSearchTimeWasValid
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1021 or keyboardSearchTimeElapsed > QApplication.keyboardInputInterval()
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1022 ):
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
1023 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
1024 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
1025 self._keyboardSearchString += search.lower()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1026
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
1027 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
1028 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
1029 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
1030 name = self.model().data(index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1031 if name.lower().startswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1032 self._keyboardSearchString
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1033 ) and self._keyboardSearchType(self.model().item(index)):
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
1034 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
1035 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1036
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
1037 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
1038 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
1039 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
1040 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
1041 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1042
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
1043 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
1044 self.setCurrentIndex(index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1045
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
1046 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
1047 """
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
1048 Protected method to check, if the item is of the correct type.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1049
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
1050 @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
1051 @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
1052 @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
1053 @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
1054 """
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
1055 return isinstance(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1056 item, (BrowserDirectoryItem, BrowserFileItem, BrowserSysPathItem)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1057 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1058
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1059 @pyqtSlot()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1060 def _newDirectory(self):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1061 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1062 Protected slot to create a new directory.
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1063 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1064 index = self.currentIndex()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1065 if index.isValid():
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1066 dname = self.model().item(index).dirName()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1067 newName, ok = QInputDialog.getText(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1068 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1069 self.tr("New Directory"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1070 self.tr("Name for new directory:"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1071 QLineEdit.EchoMode.Normal,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1072 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1073 if ok and bool(newName):
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1074 if FileSystemUtilities.isRemoteFileName(dname):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1075 dirpath = self.__remotefsInterface.join(dname, newName)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1076 dirExists = self.__remotefsInterface.exists(dirpath)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1077 else:
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1078 dirpath = os.path.join(dname, newName)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1079 dirExists = os.path.exists(dirpath)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1080 if dirExists:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
1081 EricMessageBox.warning(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1082 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1083 self.tr("New Directory"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1084 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1085 "A file or directory named <b>{0}</b> exists"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1086 " already. Aborting..."
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1087 ).format(newName),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1088 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1089 else:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1090 try:
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1091 if FileSystemUtilities.isRemoteFileName(dirpath):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1092 self.__remotefsInterface.mkdir(dirpath, mode=0o751)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1093 else:
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1094 os.mkdir(dirpath, mode=0o751)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1095 except OSError as err:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
1096 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1097 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1098 self.tr("New Directory"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1099 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1100 "<p>The directory <b>{0}</b> could not be"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1101 " created.</p><p>Reason: {1}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1102 ).format(newName, str(err)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1103 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1104
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1105 @pyqtSlot()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1106 def _newFile(self):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1107 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1108 Protected slot to create a new file.
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1109 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1110 index = self.currentIndex()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1111 if index.isValid():
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1112 dname = self.model().item(index).dirName()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1113 fname, ok = QInputDialog.getText(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1114 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1115 self.tr("New File"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1116 self.tr("Name for new file:"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1117 QLineEdit.EchoMode.Normal,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1118 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1119 if ok and bool(fname):
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1120 if FileSystemUtilities.isRemoteFileName(dname):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1121 filepath = self.__remotefsInterface.join(dname, fname)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1122 fileExists = self.__remotefsInterface.exists(filepath)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1123 else:
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1124 filepath = os.path.join(dname, fname)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1125 fileExists = os.path.exists(filepath)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1126 if fileExists:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
1127 EricMessageBox.warning(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1128 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1129 self.tr("New File"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1130 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1131 "A file or directory named <b>{0}</b> exists"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1132 " already. Aborting..."
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1133 ).format(fname),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1134 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1135 else:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1136 try:
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1137 if FileSystemUtilities.isRemoteFileName(filepath):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1138 self.__remotefsInterface.writeFile(filepath, b"")
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1139 else:
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1140 with open(filepath, "w"):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1141 pass
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1142 except OSError as err:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
1143 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1144 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1145 self.tr("New File"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1146 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1147 "<p>The file <b>{0}</b> could not be"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1148 " created.</p><p>Reason: {1}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1149 ).format(fname, str(err)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1150 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1151
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1152 @pyqtSlot()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1153 def _deleteFileOrDirectory(self):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1154 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1155 Protected slot to delete a directory or file.
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1156 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1157 index = self.currentIndex()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1158 if index.isValid():
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1159 itm = self.model().item(index)
10470
cd7bfd539ac9 Changed the browser item types to an enum in BrowserModel and ProjectBrowserModel.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1160 if itm.type() == BrowserItemType.Directory:
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1161 self.__deleteDirectory(itm.dirName())
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1162 else:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1163 self.__deleteFile(itm.fileName())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1164
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1165 def __deleteFile(self, fn):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1166 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1167 Private method to delete a file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1168
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1169 @param fn filename to be deleted
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1170 @type str
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1171 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1172 dlg = DeleteFilesConfirmationDialog(
11218
43dfc40728d2 Modified the 'parent' handling for the DeleteFilesConfirmationDialog class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
1173 self,
9632
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1174 self.tr("Delete File"),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1175 self.tr("Do you really want to delete this file?"),
9644
9875d5f11cbf Corrected some formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9632
diff changeset
1176 [fn],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1177 )
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
1178 if dlg.exec() == QDialog.DialogCode.Accepted:
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1179 try:
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1180 if FileSystemUtilities.isRemoteFileName(fn):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1181 self.__remotefsInterface.remove(fn)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1182 else:
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1183 os.remove(fn)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1184 except OSError as err:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
1185 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1186 self.ui,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1187 self.tr("Delete File"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1188 self.tr(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1189 "<p>The selected file <b>{0}</b> could not be"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1190 " deleted.</p><p>Reason: {1}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1191 ).format(fn, str(err)),
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1192 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1193
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1194 def __deleteDirectory(self, dn):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1195 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1196 Private method to delete a directory.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1197
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1198 @param dn directory name to be removed from the project
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1199 @type str
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1200 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1201 dlg = DeleteFilesConfirmationDialog(
11218
43dfc40728d2 Modified the 'parent' handling for the DeleteFilesConfirmationDialog class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
1202 self,
9632
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1203 self.tr("Delete Directory"),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1204 self.tr("Do you really want to delete this directory?"),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1205 [dn],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1206 )
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
1207 if dlg.exec() == QDialog.DialogCode.Accepted:
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1208 try:
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1209 if FileSystemUtilities.isRemoteFileName(dn):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1210 self.__remotefsInterface.shutilRmtree(dn, ignore_errors=True)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1211 else:
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1212 shutil.rmtree(dn, ignore_errors=True)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1213 except OSError as err:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
1214 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1215 self.ui,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1216 self.tr("Delete Directory"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1217 self.tr(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1218 "<p>The selected directory <b>{0}</b> could not be"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1219 " deleted.</p><p>Reason: {1}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1220 ).format(dn, str(err)),
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1221 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1222
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1223 @pyqtSlot()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1224 def __deleteMultiple(self):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1225 """
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1226 Private slot to delete multiple files.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1227
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1228 Note: The context menu for multi selection is only shown for file
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1229 items.
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1230 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1231 fileNames = []
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1232 for itm in self.getSelectedItems():
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1233 fileNames.append(itm.fileName())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1234
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1235 dlg = DeleteFilesConfirmationDialog(
11218
43dfc40728d2 Modified the 'parent' handling for the DeleteFilesConfirmationDialog class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
1236 self,
9632
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1237 self.tr("Delete Files"),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1238 self.tr("Do you really want to delete these files?"),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1239 sorted(fileNames),
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1240 )
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
1241 if dlg.exec() == QDialog.DialogCode.Accepted:
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1242 for fn in fileNames:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1243 try:
10949
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1244 if FileSystemUtilities.isRemoteFileName(fn):
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1245 self.__remotefsInterface.remove(fn)
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1246 else:
2057b1b198a5 IDE Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10918
diff changeset
1247 os.remove(fn)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1248 except OSError as err:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
1249 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1250 self.ui,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1251 self.tr("Delete File"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1252 self.tr(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1253 "<p>The selected file <b>{0}</b> could not be"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1254 " deleted.</p><p>Reason: {1}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1255 ).format(fn, str(err)),
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1256 )

eric ide

mercurial