src/eric7/UI/Browser.py

Thu, 11 Jul 2024 14:21:34 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 11 Jul 2024 14:21:34 +0200
branch
eric7
changeset 10840
c8045d0dbaa7
parent 10680
306373ccf8fd
child 10918
056bd087096f
permissions
-rw-r--r--

MicroPython
- Updated the list of known CircuitPython boards for CPy 9.1.0.
- Updated the list of known UF2 capable boards.

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
10439
21c28b0f9e41 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10433
diff changeset
3 # Copyright (c) 2002 - 2024 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)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 self.__sortModel = BrowserSortFilterProxyModel()
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.header().setStretchLastSection(True)
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
215
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 self.layoutDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
217
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 def layoutDisplay(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 Public slot to perform a layout operation.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 """
10383
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
222 self._resizeColumns()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 self._resort()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
224
10383
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
225 @pyqtSlot()
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
226 def _resizeColumns(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 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
229 """
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
230 self.resizeColumnToContents(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
231
10383
817fd2f82d7d IMplemented another workaround for a Qt 6.6.1 glitch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10378
diff changeset
232 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 def _resort(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 Protected slot to resort the tree.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
237 self.model().sort(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
238 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
239 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
240
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 def __createPopupMenus(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 Private method to generate the various popup menus.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 """
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
245 self.showHiddenFilesAct = QAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
246 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
247 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
248 self.showHiddenFilesAct.setCheckable(True)
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
249 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
250 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
251
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
252 self.__newMenu = QMenu(QCoreApplication.translate("Browser", "New"), self)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
253 self.__newMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
254 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
255 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
256 self.__newMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
257 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
258 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
259
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 # create the popup menu for source files
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 self.sourceMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
262 self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
263 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
264 )
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
265 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
266 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
267 )
4101
68c26f72c0d1 Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
268 self.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
269 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
270 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
271 )
4101
68c26f72c0d1 Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
272 self.sourceMenu.addSeparator()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
274 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
275 self.__refreshSource,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
276 )
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
277 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
278 self.sourceMenu.addAction(
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
279 QCoreApplication.translate("Browser", "Show in File Manager"),
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
280 self._showInFileManager,
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
281 )
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
282 self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
283 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
284 self._copyToClipboard,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
285 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
286 self.sourceMenu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
287 self.sourceMenu.addAction(self.showHiddenFilesAct)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
288 self.sourceMenu.addSeparator()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
289 self.sourceMenu.addMenu(self.__newMenu)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
290 self.sourceMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
291 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
292 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
293
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 # create the popup menu for general use
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 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
296 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
297 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
298 )
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
299 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
300 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
301 self._openHexEditor,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
302 )
3012
d177226027e2 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
303 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
304 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
305 self._editPixmap,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
306 )
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
307 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
308 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
309 self._openFileInEditor,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
310 )
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
311 self.openInPdfViewerAct = self.menu.addAction(
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
312 QCoreApplication.translate("Browser", "Open in PDF Viewer"),
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
313 self._openPdfViewer,
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
314 )
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
315 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
316 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
317 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
318 )
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
319 self.menu.addSeparator()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 self.menu.addAction(
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
321 QCoreApplication.translate("Browser", "Show in File Manager"),
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
322 self._showInFileManager,
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
323 )
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
324 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
325 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
326 self._copyToClipboard,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
327 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
328 self.menu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
329 self.menu.addAction(self.showHiddenFilesAct)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
330 self.menu.addSeparator()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
331 self.menu.addMenu(self.__newMenu)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
332 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
333 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
334 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
335
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 # create the menu for multiple selected files
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 self.multiMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
338 self.multiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
339 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
340 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
341 self.multiMenu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
342 self.multiMenu.addAction(self.showHiddenFilesAct)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
343 self.multiMenu.addSeparator()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
344 self.multiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
345 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
346 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
347
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 # create the directory menu
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 self.dirMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
350 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
351 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
352 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
353 )
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.__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
355 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
356 self.__newRemoteTopLevelDir,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
357 )
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
358 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
359 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
360 self.__addAsToplevelDir,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
361 )
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
362 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
363 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
364 self.__removeToplevel,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
365 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 self.dirMenu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
367 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
368 QCoreApplication.translate("Browser", "Refresh directory"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
369 self.__refreshDirectory,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
370 )
233
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
371 self.dirMenu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
372 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
373 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
374 self.__findInDirectory,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
375 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
376 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
377 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
378 self.__replaceInDirectory,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
379 )
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
380 self.dirMenu.addSeparator()
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
381 self.dirMenu.addAction(
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
382 QCoreApplication.translate("Browser", "Show in File Manager"),
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
383 self._showInFileManager,
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
384 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
386 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
387 self._copyToClipboard,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
388 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
389 self.dirMenu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
390 self.dirMenu.addAction(self.showHiddenFilesAct)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
391 self.dirMenu.addSeparator()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
392 self.dirMenu.addMenu(self.__newMenu)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
393 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
394 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
395 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
396
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
397 # create the attribute menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
398 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
399 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
400 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
401
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
402 self.attributeMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
403 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
404 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
405 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
406 )
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.__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
408 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
409 self.__newRemoteTopLevelDir,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
410 )
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
411 self.attributeMenu.addSeparator()
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
412 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
413
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 # create the background menu
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 self.backMenu = QMenu(self)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
416 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
417 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
418 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
419 )
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.__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
421 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
422 self.__newRemoteTopLevelDir,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
423 )
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
424 self.backMenu.addSeparator()
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
425 self.backMenu.addAction(self.showHiddenFilesAct)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427 def mouseDoubleClickEvent(self, mouseEvent):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
429 Protected method of QAbstractItemView.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
430
3012
d177226027e2 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
431 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
432 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
433
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
434 @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
435 @type QMouseEvent
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 """
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
437 index = self.indexAt(mouseEvent.position().toPoint())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 if index.isValid():
4528
63154a5e18d0 Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4186
diff changeset
439 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
440 if isinstance(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
441 itm,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
442 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
443 BrowserDirectoryItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
444 BrowserImportsItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
445 ProjectBrowserSimpleDirectoryItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
446 BrowserSysPathItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
447 BrowserGlobalsItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
448 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
449 ):
4528
63154a5e18d0 Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4186
diff changeset
450 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
451 else:
63154a5e18d0 Expand some browser items on double click.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4186
diff changeset
452 self._openItem()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
454 def _contextMenuRequested(self, coord):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
455 """
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
456 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
457
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
458 @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
459 @type QPoint
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
460 """
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
461 categories = self.getSelectedItemsCountCategorized(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
462 [BrowserDirectoryItem, BrowserFileItem, BrowserClassItem, BrowserMethodItem]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
463 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 cnt = categories["sum"]
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
465 bfcnt = categories[str(BrowserFileItem)]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 if cnt > 1 and cnt == bfcnt:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 self.multiMenu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
468 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 index = self.indexAt(coord)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
470
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471 if index.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 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
473 flags = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
474 QItemSelectionModel.SelectionFlag.ClearAndSelect
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
475 | 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
476 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 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
478
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 itm = self.model().item(index)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 coord = self.mapToGlobal(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
481 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
482 if itm.isPython3File():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
483 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
484 self.testingAct.setEnabled(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485 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
486 self.testingAct.setEnabled(False)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 self.sourceMenu.popup(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
489 self.editPixmapAct.setVisible(itm.isPixmapFile())
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
490 self.openInEditorAct.setVisible(itm.isSvgFile())
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
491 self.openInPdfViewerAct.setVisible(itm.isPdfFile())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 self.menu.popup(coord)
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
493 elif isinstance(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
494 itm, (BrowserClassItem, BrowserMethodItem, BrowserImportItem)
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
495 ):
4183
856ba07de877 Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4101
diff changeset
496 self.editPixmapAct.setVisible(False)
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
497 self.openInPdfViewerAct.setVisible(False)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
498 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
499 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
500 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
501 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
502 )
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
503 self.attributeMenu.popup(coord)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
504 elif isinstance(itm, BrowserDirectoryItem):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
505 if not index.parent().isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
506 self.removeFromToplevelAct.setEnabled(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
507 self.addAsTopLevelAct.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
508 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
509 self.removeFromToplevelAct.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510 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
511 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
512 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
513 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 self.dirMenu.popup(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
515 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
516 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
517 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
518 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
519 self.backMenu.popup(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
520 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
521 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
522 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
523 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524 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
525
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
526 def _showGotoMenu(self):
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 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
529 """
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
530 self.gotoMenu.clear()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
531
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
532 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
533 linenos = itm.linenos()
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
534 fileName = itm.fileName()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
535
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
536 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
537 act = self.gotoMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
538 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
539 )
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
540 act.setData([fileName, lineno])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
541
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
542 def _gotoAttribute(self, act):
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
543 """
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
544 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
545
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
546 @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
547 @type EricAction
1303
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
548 """
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
549 fileName, lineno = act.data()
6018d7ac3aec Added context menu for attributes to the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
550 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
551
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 def handlePreferencesChanged(self):
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 Public slot used to handle the preferencesChanged signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
556 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
557 self.layoutDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
558
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 def _openItem(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 Protected slot to handle the open popup menu entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 """
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
563 itmList = self.getSelectedItems(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
564 [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
565 BrowserFileItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
566 BrowserClassItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
567 BrowserMethodItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
568 BrowserClassAttributeItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
569 BrowserImportItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
570 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
571 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
572
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
573 if not self._activating:
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
574 self._activating = True
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
575 for itm in itmList:
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
576 if isinstance(itm, BrowserFileItem):
9615
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
577 if (
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
578 itm.isPython3File()
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
579 or itm.isResourcesFile()
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
580 or itm.isParsableFile()
fbb3616f6bd3 Fixed a silly typo (see issue477).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
581 ):
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
582 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
583 elif itm.isRubyFile():
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, "Ruby")
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
585 elif itm.isDFile():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
586 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
587 elif itm.isDesignerFile():
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
588 self.designerFile.emit(itm.fileName())
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
589 elif itm.isLinguistFile():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
590 if itm.fileExt() == ".ts":
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
591 self.linguistFile.emit(itm.fileName())
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
592 else:
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
593 self.trpreview.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.isProjectFile():
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
595 self.projectFile.emit(itm.fileName())
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
596 elif itm.isMultiProjectFile():
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
597 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
598 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
599 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
600 elif itm.isPixmapFile():
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
601 self.pixmapFile.emit(itm.fileName())
8282
16b243bdb12f UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8270
diff changeset
602 elif itm.isEricGraphicsFile():
16b243bdb12f UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8270
diff changeset
603 self.umlFile.emit(itm.fileName())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
604 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
605 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
606 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
607 else:
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
608 QDesktopServices.openUrl(QUrl(itm.fileName()))
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
609 elif isinstance(itm, BrowserClassItem):
10677
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
610 self.sourceFile[str, int, int].emit(
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
611 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
612 )
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
613 elif isinstance(itm, BrowserMethodItem):
10677
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
614 self.sourceFile[str, int, int].emit(
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
615 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
616 )
2099
afde0e9110f7 Implemented guards against double activation of list entries.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2094
diff changeset
617 elif isinstance(itm, BrowserClassAttributeItem):
10677
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
618 self.sourceFile[str, int, int].emit(
6ee2e475490c Editor Outline, File Browser, Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10673
diff changeset
619 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
620 )
4183
856ba07de877 Added capability to show imports of a Python script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4101
diff changeset
621 elif isinstance(itm, BrowserImportItem):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
622 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
623 self._activating = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
624
10396
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
625 def _showInFileManager(self):
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 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
628 """
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
629 itmList = self.getSelectedItems(
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
630 [
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
631 BrowserFileItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
632 BrowserClassItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
633 BrowserMethodItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
634 BrowserClassAttributeItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
635 BrowserImportItem,
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
636 BrowserDirectoryItem,
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
637 BrowserSimpleDirectoryItem,
10396
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
638 ]
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
639 )
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
640 for itm in itmList:
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
641 directory = (
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
642 itm.dirName()
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
643 if isinstance(itm, (BrowserDirectoryItem, BrowserSimpleDirectoryItem))
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
644 else os.path.dirname(itm.fileName())
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
645 )
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
646 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
647
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
648 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
649 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
650 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
651 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
652 self.tr(
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10397
diff changeset
653 "<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
654 " 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
655 ).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
656 )
10396
2f72e9330af2 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10383
diff changeset
657
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
658 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
659 """
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
660 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
661 """
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
662 itmList = self.getSelectedItems(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
663 [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
664 BrowserFileItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
665 BrowserClassItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
666 BrowserMethodItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
667 BrowserClassAttributeItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
668 BrowserImportItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
669 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
670 )
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
671 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
672 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
673 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
674 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
675 self,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
676 QCoreApplication.translate("Browser", "Show Mime-Type"),
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
677 QCoreApplication.translate(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
678 "Browser",
9573
9960d19d66b5 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
679 """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
680 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
681 )
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 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
683 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
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", """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
688 ).format(mimetype),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
689 )
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
690 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
691 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
692 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
693 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
694 self,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
695 QCoreApplication.translate("Browser", "Show Mime-Type"),
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
696 QCoreApplication.translate(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
697 "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
698 ).format(mimetype),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
699 )
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
700 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
701 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
702 self,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
703 QCoreApplication.translate("Browser", "Show Mime-Type"),
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
704 QCoreApplication.translate(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
705 "Browser",
5674
a0ad2dcb27f9 Corrected some translations related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5599
diff changeset
706 """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
707 """<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
708 """ text mime types?""",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
709 ).format(mimetype),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
710 )
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 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
712 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
713 Preferences.setUI("TextMimeTypes", textMimeTypesList)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
714
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
715 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
716 """
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
717 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
718 """
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
719 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
720 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
721 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
722
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 def _editPixmap(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 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
726 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
727 itmList = self.getSelectedItems([BrowserFileItem])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
728
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729 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
730 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
731 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
732
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
733 def _openHexEditor(self):
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
734 """
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
735 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
736 """
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
737 itmList = self.getSelectedItems([BrowserFileItem])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
738
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
739 for itm in itmList:
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
740 if isinstance(itm, BrowserFileItem):
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
741 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
742
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
743 def _openPdfViewer(self):
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
744 """
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
745 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
746 """
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
747 itmList = self.getSelectedItems([BrowserFileItem])
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
748
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
749 for itm in itmList:
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
750 if isinstance(itm, BrowserFileItem):
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
751 self.pdfFile.emit(itm.fileName())
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
752
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
753 def _openFileInEditor(self):
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
754 """
8925
8375eb895f70 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8909
diff changeset
755 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
756 """
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
757 itmList = self.getSelectedItems([BrowserFileItem])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
758
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
759 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
760 if MimeTypes.isTextFile(itm.fileName()):
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
761 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
762
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
763 def _copyToClipboard(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
764 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
765 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
766 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
767 itm = self.model().item(self.currentIndex())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
768 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
769 fn = itm.fileName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
770 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
771 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
772 fn = itm.dirName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
773 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 fn = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
775
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
776 if fn:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
777 cb = QApplication.clipboard()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
778 cb.setText(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
779
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
780 @pyqtSlot(bool)
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
781 def _showHidden(self, checked):
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
782 """
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
783 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
784
8109
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
785 @param checked flag indicating the state of the action
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
786 @type bool
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
787 """
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
788 self.__sortModel.setShowHiddenFiles(checked)
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
789 # remember the current state
486984bb52e3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
790 Preferences.setUI("BrowsersListHiddenFiles", checked)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
791
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
792 @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
793 def handleTesting(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
794 """
9066
a219ade50f7c Performed some refactoring to avoid possible name clashes on case-insensitive systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8925
diff changeset
795 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
796 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
797 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
798 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799 itm = self.model().item(index)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
800 pyfn = itm.fileName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
802 pyfn = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
804 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
805 self.testFile.emit(pyfn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
806
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
807 @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
808 def __newTopLevelDir(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
809 """
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
810 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
811 """
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
812 dname = EricFileDialog.getExistingDirectory(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
813 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
814 QCoreApplication.translate("Browser", "New Top Level Directory"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
815 "",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
816 EricFileDialog.ShowDirsOnly,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
817 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
818 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
819 dname = os.path.abspath(FileSystemUtilities.toNativeSeparators(dname))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820 self.__model.addTopLevelDir(dname)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
821
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
822 @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
823 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
824 """
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
825 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
826 """
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
827 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
828 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
829 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
830 "",
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 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
832 )
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 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
834 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
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 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
837 def __removeToplevel(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
838 """
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
839 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
840 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
841 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
842 sindex = self.model().mapToSource(index)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
843 self.__model.removeToplevelDir(sindex)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
844
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
845 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
846 def __addAsToplevelDir(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 Add as top level directory 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 dname = self.model().item(index).dirName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 self.__model.addTopLevelDir(dname)
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()
233
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
855 def __refreshDirectory(self):
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
856 """
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
857 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
858 """
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
859 index = self.currentIndex()
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
860 refreshDir = self.model().item(index).dirName()
9d2677615a3d Fixed a few issues with the automatic update code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
861 self.__model.directoryChanged(refreshDir)
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()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
864 def __findInDirectory(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
865 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
866 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
867 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
868 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
869 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
870
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
871 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
872
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
873 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
874 def __replaceInDirectory(self):
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 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
877 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
878 index = self.currentIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
879 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
880
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
881 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
882
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
883 @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
884 def handleProgramChange(self, fn):
0
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 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
887
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
888 @param fn file name
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
889 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
890 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
891 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
892
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
893 @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
894 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
895 """
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
896 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
897
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
898 @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
899 @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
900 """
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
901 self.__model.interpreterChanged(interpreter)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
902
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
903 def wantedItem(self, itm, filterList=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
904 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
905 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
906
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
907 @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
908 @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
909 @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
910 @type list of Class
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
911 @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
912 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
913 """
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
914 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
915 filterList = self.selectedItemsFilter
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
916
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
917 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
918
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
919 def getSelectedItems(self, filterList=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
920 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
921 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
922
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
923 @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
924 @type list of Class
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
925 @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
926 @rtype list of BrowserItem
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
927 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
928 selectedItems = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
929 indexes = self.selectedIndexes()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
930 for index in indexes:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
931 if index.column() == 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 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
933 if self.wantedItem(itm, filterList):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
934 selectedItems.append(itm)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
935 return selectedItems
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
936
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
937 def getSelectedItemsCount(self, filterList=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
939 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
940
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
941 @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
942 @type list of Class
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10403
diff changeset
943 @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
944 @rtype int
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
945 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
946 count = 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
947 indexes = self.selectedIndexes()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
948 for index in indexes:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
949 if index.column() == 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
950 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
951 if self.wantedItem(itm, filterList):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
952 count += 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
953 return count
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
954
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
955 def getSelectedItemsCountCategorized(self, filterList=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
956 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
957 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
958
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
959 @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
960 @type list of Class
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
961 @return a dictionary containing the counts of items belonging
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
962 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
963 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
964 filter (i.e. str(filterClass)). The dictionary contains
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
965 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
966 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
967 @rtype dict
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
968 """
5599
033967644b1f Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
969 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
970 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
971 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
972 for typ in filterList:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
973 categories[str(typ)] = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
974
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
975 indexes = self.selectedIndexes()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
976 for index in indexes:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
977 if index.column() == 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
978 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
979 for typ in filterList:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
980 if isinstance(itm, typ):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
981 categories["sum"] += 1
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
982 categories[str(typ)] += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
983
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
984 return categories
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
985
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
986 def saveToplevelDirs(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
987 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
988 Public slot to save the toplevel directories.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
989 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
990 self.__model.saveToplevelDirs()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
991
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
992 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
993 """
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
994 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
995
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
996 @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
997 @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
998 """
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
999 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
1000 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1001
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
1002 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
1003 self.currentIndex()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1004 if self.currentIndex().isValid()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1005 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
1006 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1007
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
1008 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
1009 keyboardSearchTimeElapsed = self._keyboardSearchTimer.restart()
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1010 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1011 not search
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1012 or not keyboardSearchTimeWasValid
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1013 or keyboardSearchTimeElapsed > QApplication.keyboardInputInterval()
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1014 ):
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
1015 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
1016 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
1017 self._keyboardSearchString += search.lower()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1018
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
1019 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
1020 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
1021 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
1022 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
1023 if name.lower().startswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1024 self._keyboardSearchString
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1025 ) 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
1026 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
1027 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1028
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
1029 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
1030 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
1031 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
1032 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
1033 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1034
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
1035 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
1036 self.setCurrentIndex(index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1037
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
1038 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
1039 """
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 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
1041
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
1042 @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
1043 @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
1044 @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
1045 @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
1046 """
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 return isinstance(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1048 item, (BrowserDirectoryItem, BrowserFileItem, BrowserSysPathItem)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1049 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1050
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1051 @pyqtSlot()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1052 def _newDirectory(self):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1053 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1054 Protected slot to create a new directory.
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1055 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1056 index = self.currentIndex()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1057 if index.isValid():
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1058 dname = self.model().item(index).dirName()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1059 newName, ok = QInputDialog.getText(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1060 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1061 self.tr("New Directory"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1062 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
1063 QLineEdit.EchoMode.Normal,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1064 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1065 if ok and bool(newName):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1066 dirpath = os.path.join(dname, newName)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1067 if os.path.exists(dirpath):
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
1068 EricMessageBox.warning(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1069 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1070 self.tr("New Directory"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1071 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1072 "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
1073 " already. Aborting..."
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1074 ).format(newName),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1075 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1076 else:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1077 try:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1078 os.mkdir(dirpath, mode=0o751)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1079 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
1080 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1081 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1082 self.tr("New Directory"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1083 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1084 "<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
1085 " 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
1086 ).format(newName, str(err)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1087 )
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 @pyqtSlot()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1090 def _newFile(self):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1091 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1092 Protected slot to create a new file.
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1093 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1094 index = self.currentIndex()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1095 if index.isValid():
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1096 dname = self.model().item(index).dirName()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1097 fname, ok = QInputDialog.getText(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1098 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1099 self.tr("New File"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1100 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
1101 QLineEdit.EchoMode.Normal,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1102 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1103 if ok and bool(fname):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1104 filepath = os.path.join(dname, fname)
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1105 if os.path.exists(filepath):
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
1106 EricMessageBox.warning(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1107 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1108 self.tr("New File"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1109 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1110 "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
1111 " already. Aborting..."
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1112 ).format(fname),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1113 )
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1114 else:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1115 try:
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
1116 with open(filepath, "w"):
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
1117 pass
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1118 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
1119 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1120 self,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1121 self.tr("New File"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1122 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1123 "<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
1124 " 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
1125 ).format(fname, str(err)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1126 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1127
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1128 @pyqtSlot()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1129 def _deleteFileOrDirectory(self):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1130 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1131 Protected slot to delete a directory or file.
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1132 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1133 index = self.currentIndex()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1134 if index.isValid():
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1135 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
1136 if itm.type() == BrowserItemType.Directory:
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1137 self.__deleteDirectory(itm.dirName())
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1138 else:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1139 self.__deleteFile(itm.fileName())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1140
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1141 def __deleteFile(self, fn):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1142 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1143 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
1144
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1145 @param fn filename to be deleted
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1146 @type str
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1147 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1148 dlg = DeleteFilesConfirmationDialog(
9632
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1149 self.parent(),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1150 self.tr("Delete File"),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1151 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
1152 [fn],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1153 )
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
1154 if dlg.exec() == QDialog.DialogCode.Accepted:
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1155 try:
9632
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1156 os.remove(fn)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1157 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
1158 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1159 self.ui,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1160 self.tr("Delete File"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1161 self.tr(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1162 "<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
1163 " 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
1164 ).format(fn, str(err)),
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1165 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1166
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1167 def __deleteDirectory(self, dn):
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1168 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1169 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
1170
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1171 @param dn directory name to be removed from the project
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1172 @type str
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1173 """
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1174 dlg = DeleteFilesConfirmationDialog(
9632
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1175 self.parent(),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1176 self.tr("Delete Directory"),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1177 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
1178 [dn],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1179 )
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
1180 if dlg.exec() == QDialog.DialogCode.Accepted:
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1181 try:
10403
ea3320d5e8e9 Changed code using "shutil.rmtree()" more readable by adding "ignore_errors=" where this parameter is non-default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
1182 shutil.rmtree(dn, ignore_errors=True)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1183 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
1184 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1185 self.ui,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1186 self.tr("Delete Directory"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1187 self.tr(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1188 "<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
1189 " 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
1190 ).format(dn, str(err)),
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1191 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1192
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1193 @pyqtSlot()
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1194 def __deleteMultiple(self):
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 slot to delete multiple directories and files.
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 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
1199 items.
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 fileNames = []
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1202 for itm in self.getSelectedItems():
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1203 fileNames.append(itm.fileName())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1204
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1205 dlg = DeleteFilesConfirmationDialog(
9632
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1206 self.parent(),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1207 self.tr("Delete Files"),
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1208 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
1209 sorted(fileNames),
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1210 )
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
1211 if dlg.exec() == QDialog.DialogCode.Accepted:
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1212 for fn in fileNames:
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1213 try:
9632
dd907ee33b03 Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1214 os.remove(fn)
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1215 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
1216 EricMessageBox.critical(
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1217 self.ui,
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1218 self.tr("Delete File"),
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1219 self.tr(
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1220 "<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
1221 " 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
1222 ).format(fn, str(err)),
8114
b7abbf3f82a3 File Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8109
diff changeset
1223 )

eric ide

mercurial