src/eric7/Project/ProjectOthersBrowser.py

Mon, 14 Apr 2025 12:22:18 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 14 Apr 2025 12:22:18 +0200
branch
eric7
changeset 11218
43dfc40728d2
parent 11090
f5f5f5803935
permissions
-rw-r--r--

Modified the 'parent' handling for the DeleteFilesConfirmationDialog class.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11006
diff changeset
3 # Copyright (c) 2002 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
7 Module implementing a class used to display the parts of the project, that
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
8 don't fit the other categories.
0
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
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
11 import contextlib
10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
12 import os
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
13
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10256
diff changeset
14 from PyQt6.QtCore import QUrl, pyqtSignal
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
15 from PyQt6.QtGui import 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
16 from PyQt6.QtWidgets import QDialog, QMenu
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
18 from eric7 import Preferences
9524
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
19 from eric7.EricGui import EricPixmapCache
10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
20 from eric7.EricWidgets import EricMessageBox, EricPathPickerDialog
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
21 from eric7.EricWidgets.EricApplication import ericApp
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
22 from eric7.EricWidgets.EricPathPickerDialog import EricPathPickerModes
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
23 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
24 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
25 from eric7.Utilities import MimeTypes
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
26
9520
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
27 from .FileCategoryRepositoryItem import FileCategoryRepositoryItem
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
28 from .ProjectBaseBrowser import ProjectBaseBrowser
7265
0665c4d509c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
29 from .ProjectBrowserModel import (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
30 ProjectBrowserDirectoryItem,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
31 ProjectBrowserFileItem,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
32 ProjectBrowserSimpleDirectoryItem,
7265
0665c4d509c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
33 )
9524
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
34 from .ProjectBrowserRepositoryItem import ProjectBrowserRepositoryItem
3565
8e1cd7721515 Added a utility function to handle mime types other than 'text' that are editable text files as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
35
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
36
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 class ProjectOthersBrowser(ProjectBaseBrowser):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
39 A class used to display the parts of the project, that don't fit the
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
40 other categories.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
41
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
42 @signal showMenu(str, QMenu) emitted when a menu is about to be shown.
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
43 The name of the menu and a reference to the menu are given.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
46 showMenu = pyqtSignal(str, QMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47
9512
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
48 def __init__(self, project, projectBrowser, parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
51
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 @param project reference to the project object
9512
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
53 @type Project
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
54 @param projectBrowser reference to the project browser object
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
55 @type ProjectBrowser
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
56 @param parent parent widget of this browser
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
57 @type QWidget
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
9527
8601253e7633 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9525
diff changeset
59 ProjectBaseBrowser.__init__(self, project, "other", parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
60
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
61 self.selectedItemsFilter = [ProjectBrowserFileItem, ProjectBrowserDirectoryItem]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.specialMenuEntries = [1]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
64 self.setWindowTitle(self.tr("Others"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
66 self.setWhatsThis(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
67 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
68 """<b>Project Others Browser</b>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
69 """<p>This allows to easily see all other files and directories"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
70 """ contained in the current project. Several actions can be"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
71 """ executed via the context menu. The entry which is registered"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
72 """ in the project is shown in a different colour.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
73 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
75
9520
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
76 # Add the file category handled by the browser.
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
77 project.addFileCategory(
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
78 "OTHERS",
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
79 FileCategoryRepositoryItem(
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
80 fileCategoryFilterTemplate=self.tr("Other Files ({0})"),
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
81 fileCategoryUserString=self.tr("Other Files"),
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
82 fileCategoryTyeString=self.tr("Others"),
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
83 fileCategoryExtensions=[],
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
84 ),
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
85 )
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
86
9524
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
87 # Add the project browser type to the browser type repository.
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
88 projectBrowser.addTypedProjectBrowser(
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
89 "others",
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
90 ProjectBrowserRepositoryItem(
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
91 projectBrowser=self,
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
92 projectBrowserUserString=self.tr("Others Browser"),
9525
477545eef9f4 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9524
diff changeset
93 priority=0,
9524
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
94 fileCategory="OTHERS",
9527
8601253e7633 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9525
diff changeset
95 fileFilter="other",
9524
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
96 getIcon=self.getIcon,
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
97 ),
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
98 )
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
99
9520
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
100 # Connect signals of Project.
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
101 project.prepareRepopulateItem.connect(self._prepareRepopulateItem)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
102 project.completeRepopulateItem.connect(self._completeRepopulateItem)
9512
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
103 project.projectClosed.connect(self._projectClosed)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
104 project.projectOpened.connect(self._projectOpened)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
105 project.newProject.connect(self._newProject)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
106 project.reinitVCS.connect(self._initMenusAndVcs)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
107 project.projectPropertiesChanged.connect(self._initMenusAndVcs)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
108
9520
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
109 # Connect signals of ProjectBrowser.
9512
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
110 projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
111
9520
e12589f1d408 Continued refactoring of the project browser related code in order to extract some as plugins later on (added a file category repository to the Project class).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
112 # Connect some of our own signals.
9512
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
113 self.closeSourceWindow.connect(projectBrowser.closeSourceWindow)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
114 self.sourceFile[str].connect(projectBrowser.sourceFile[str])
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
115 self.pixmapEditFile.connect(projectBrowser.pixmapEditFile)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
116 self.pixmapFile.connect(projectBrowser.pixmapFile)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
117 self.svgFile.connect(projectBrowser.svgFile)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
118 self.umlFile.connect(projectBrowser.umlFile)
6e29913ba7b6 Started refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
119 self.binaryFile.connect(projectBrowser.binaryFile)
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
120 self.pdfFile.connect(projectBrowser.pdfFile)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
121
9524
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
122 def getIcon(self):
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
123 """
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
124 Public method to get an icon for the project browser.
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
125
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
126 @return icon for the browser
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
127 @rtype QIcon
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
128 """
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
129 return EricPixmapCache.getIcon("projectOthers")
6a730f4d0080 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9520
diff changeset
130
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 def _createPopupMenus(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 Protected overloaded method to generate the popup menu.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 ProjectBaseBrowser._createPopupMenus(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
136
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
137 self.menu.addAction(self.tr("Open in Hex Editor"), self._openHexEditor)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
138 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
139 self.tr("Open in Icon Editor"), self._editPixmap
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
140 )
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
141 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
142 self.tr("Open in Editor"), self._openFileInEditor
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
143 )
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
144 self.openInPdfViewerAct = self.menu.addAction(
9722
63135ab601e7 Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9697
diff changeset
145 self.tr("Open in PDF Viewer"), self._openPdfViewer
63135ab601e7 Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9697
diff changeset
146 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 self.menu.addSeparator()
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
148 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
149 self.tr("Show Mime-Type"), self.__showMimeType
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
150 )
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
151 self.menu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
152 self.renameFileAct = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153 self.tr("Rename file"), self._renameFile
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 self.menuActions.append(self.renameFileAct)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
156 act = self.menu.addAction(self.tr("Remove from project"), self.__removeItem)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 self.menuActions.append(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
158 act = self.menu.addAction(self.tr("Delete"), self.__deleteItem)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 self.menuActions.append(act)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 self.menu.addSeparator()
10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
161 self.menu.addAction(self.tr("New file..."), self.__addNewOthersFile)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
162 self.menu.addAction(self.tr("New directory..."), self.__addNewOthersDirectory)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
163 self.menu.addSeparator()
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
164 self.menu.addAction(self.tr("Add files..."), self.__addOthersFiles)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
165 self.menu.addAction(self.tr("Add directory..."), self.__addOthersDirectory)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 self.menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167 self.menu.addAction(self.tr("Refresh"), self.__refreshItem)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 self.menu.addSeparator()
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
169 self.menuFileManagerAct = self.menu.addAction(
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
170 self.tr("Show in File Manager"), self._showInFileManager
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
171 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172 self.menu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 self.menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
174 self.menu.addAction(self.tr("Expand all directories"), self._expandAllDirs)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
175 self.menu.addAction(self.tr("Collapse all directories"), self._collapseAllDirs)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 self.menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
177 self.menu.addAction(self.tr("Configure..."), self._configure)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
179 self.dirMenu = QMenu(self)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
180 self.removeDirAct = self.dirMenu.addAction(
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
181 self.tr("Remove from project"), self._removeDir
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
182 )
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
183 self.dirMenuActions.append(self.removeDirAct)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
184 self.deleteDirAct = self.dirMenu.addAction(
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
185 self.tr("Delete"), self._deleteDirectory
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
186 )
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
187 self.dirMenuActions.append(self.deleteDirAct)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
188 self.dirMenu.addSeparator()
10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
189 self.dirMenu.addAction(self.tr("New file..."), self.__addNewOthersFile)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
190 self.dirMenu.addAction(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
191 self.tr("New directory..."), self.__addNewOthersDirectory
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
192 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
193 self.dirMenu.addSeparator()
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
194 self.dirMenu.addAction(self.tr("Add files..."), self.__addOthersFiles)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
195 self.dirMenu.addAction(self.tr("Add directory..."), self.__addOthersDirectory)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
196 self.dirMenu.addSeparator()
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
197 self.dirMenuFileManagerAct = self.dirMenu.addAction(
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
198 self.tr("Show in File Manager"), self._showInFileManager
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
199 )
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
200 self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
201 self.dirMenu.addSeparator()
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
202 self.dirMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
203 self.dirMenu.addAction(
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
204 self.tr("Collapse all directories"), self._collapseAllDirs
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
205 )
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
206 self.dirMenu.addSeparator()
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
207 self.dirMenu.addAction(self.tr("Configure..."), self._configure)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
208
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 self.backMenu = QMenu(self)
9516
0f023e61a9b5 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
210 self.backMenu.addAction(
10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
211 self.tr("New file..."),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
212 lambda: self.__addNewOthersFile(useCurrent=False),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
213 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
214 self.backMenu.addAction(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
215 self.tr("New directory..."),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
216 lambda: self.__addNewOthersDirectory(useCurrent=False),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
217 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
218 self.backMenu.addSeparator()
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
219 self.backMenu.addAction(
9516
0f023e61a9b5 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
220 self.tr("Add files..."), lambda: self.project.addFiles("OTHERS")
0f023e61a9b5 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
221 )
0f023e61a9b5 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
222 self.backMenu.addAction(
0f023e61a9b5 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
223 self.tr("Add directory..."), lambda: self.project.addDirectory("OTHERS")
0f023e61a9b5 Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
224 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 self.backMenu.addSeparator()
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
226 self.backMenuFileManagerAct = self.backMenu.addAction(
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10256
diff changeset
227 self.tr("Show in File Manager"), self._showProjectInFileManager
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10256
diff changeset
228 )
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10256
diff changeset
229 self.backMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
230 self.backMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
231 self.backMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
232 self.tr("Collapse all directories"), self._collapseAllDirs
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
233 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 self.backMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
235 self.backMenu.addAction(self.tr("Configure..."), self._configure)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 self.backMenu.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 self.multiMenu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
239 act = self.multiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
240 self.tr("Remove from project"), self.__removeItem
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
241 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 self.multiMenuActions.append(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
243 act = self.multiMenu.addAction(self.tr("Delete"), self.__deleteItem)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 self.multiMenuActions.append(act)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 self.multiMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
246 self.multiMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
247 self.multiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
248 self.tr("Collapse all directories"), self._collapseAllDirs
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
249 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 self.multiMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
251 self.multiMenu.addAction(self.tr("Configure..."), self._configure)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
252
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
253 self.menu.aboutToShow.connect(self.__showContextMenu)
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
254 self.multiMenu.aboutToShow.connect(self.__showContextMenuMulti)
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
255 self.dirMenu.aboutToShow.connect(self.__showContextMenuDir)
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
256 self.backMenu.aboutToShow.connect(self.__showContextMenuBack)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 self.mainMenu = self.menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
258
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 def _contextMenuRequested(self, coord):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 Protected slot to show the context menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
262
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
263 @param coord the position of the mouse pointer
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
264 @type QPoint
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 if not self.project.isOpen():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
268
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
269 isRemote = FileSystemUtilities.isRemoteFileName(self.project.getProjectPath())
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
270
9462
e65379fdbd97 Changed code to resolve or acknowledge some potential security issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
271 with contextlib.suppress(Exception): # secok
9402
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
272 cnt = self.getSelectedItemsCount(
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
273 [
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
274 ProjectBrowserFileItem,
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
275 ProjectBrowserDirectoryItem,
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
276 ProjectBrowserSimpleDirectoryItem,
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
277 ]
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
278 )
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
279 if cnt < 1:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 index = self.indexAt(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 if index.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 self._selectSingleItem(index)
9402
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
283 cnt = self.getSelectedItemsCount(
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
284 [
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
285 ProjectBrowserFileItem,
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
286 ProjectBrowserDirectoryItem,
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
287 ProjectBrowserSimpleDirectoryItem,
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
288 ]
f5d9aa5c62db Reformatted the code with the black tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9362
diff changeset
289 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
290
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 if cnt > 1:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 self.multiMenu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 index = self.indexAt(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 if cnt == 1 and index.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 itm = self.model().item(index)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 if isinstance(itm, ProjectBrowserFileItem):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 self.editPixmapAct.setVisible(itm.isPixmapFile())
8911
a37761d36236 Fixed an issue hiding the 'Open in Editor' context menu action for files not being SVG files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8909
diff changeset
299 self.openInEditorAct.setVisible(itm.isSvgFile())
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
300 self.openInPdfViewerAct.setVisible(itm.isPdfFile())
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
301 self.mimeTypeAct.setVisible(True)
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
302 self.menuFileManagerAct.setVisible(not isRemote)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 self.menu.popup(self.mapToGlobal(coord))
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
304 elif isinstance(
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
305 itm,
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
306 (
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
307 ProjectBrowserDirectoryItem,
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
308 ProjectBrowserSimpleDirectoryItem,
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
309 ),
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
310 ):
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
311 self.removeDirAct.setVisible(True)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
312 self.deleteDirAct.setVisible(True)
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
313 self.dirMenuFileManagerAct.setVisible(not isRemote)
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
314 self.dirMenu.popup(self.mapToGlobal(coord))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 else:
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
316 self.backMenuFileManagerAct.setVisible(not isRemote)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 self.backMenu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 else:
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
319 self.backMenuFileManagerAct.setVisible(not isRemote)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 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
321
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 def __showContextMenu(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 Private slot called by the menu aboutToShow signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 self._showContextMenu(self.menu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
327
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
328 self.showMenu.emit("Main", self.menu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
329
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 def __showContextMenuMulti(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 Private slot called by the multiMenu aboutToShow signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 ProjectBaseBrowser._showContextMenuMulti(self, self.multiMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
335
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
336 self.showMenu.emit("MainMulti", self.multiMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
337
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
338 def __showContextMenuDir(self):
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
339 """
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
340 Private slot called by the dirMenu aboutToShow signal.
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
341 """
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
342 ProjectBaseBrowser._showContextMenuDir(self, self.dirMenu)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
343
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
344 self.showMenu.emit("MainDir", self.dirMenu)
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
345
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 def __showContextMenuBack(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 Private slot called by the backMenu aboutToShow signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 ProjectBaseBrowser._showContextMenuBack(self, self.backMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
351
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
352 self.showMenu.emit("MainBack", self.backMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
353
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 def _showContextMenu(self, menu):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
356 Protected slot called before the context menu is shown.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
357
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
358 It enables/disables the VCS menu entries depending on the overall
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 VCS status and the file status.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
360
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
361 @param menu Reference to the popup menu
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
362 @type QPopupMenu
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 if self.project.vcs is None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 for act in self.menuActions:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 act.setEnabled(True)
8911
a37761d36236 Fixed an issue hiding the 'Open in Editor' context menu action for files not being SVG files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8909
diff changeset
367 itm = self.model().item(self.currentIndex())
7265
0665c4d509c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
368 if isinstance(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
369 itm, (ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem)
7265
0665c4d509c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
370 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 self.renameFileAct.setEnabled(False)
10631
00f5aae565a3 Extended the project support for eric-ide server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
372 elif self.vcsHelper is not None:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 self.vcsHelper.showContextMenu(menu, self.menuActions)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
374
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 def _editPixmap(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 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
378 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 itmList = self.getSelectedItems()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
380
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 for itm in itmList:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
382 if isinstance(itm, ProjectBrowserFileItem) and itm.isPixmapFile():
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
383 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
384
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
385 def _openHexEditor(self):
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
386 """
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
387 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
388 """
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
389 itmList = self.getSelectedItems()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
390
4651
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
391 for itm in itmList:
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
392 if isinstance(itm, ProjectBrowserFileItem):
7f3f276d3bf3 Integrated the hex editor into the eric IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
393 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
394
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
395 def _openPdfViewer(self):
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
396 """
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
397 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
398 """
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
399 itmList = self.getSelectedItems()
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
400
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
401 for itm in itmList:
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
402 if isinstance(itm, ProjectBrowserFileItem) and itm.isPdfFile():
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
403 self.pdfFile.emit(itm.fileName())
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
404
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 def _openItem(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 Protected slot to handle the open popup menu entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 itmList = self.getSelectedItems()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
410
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 for itm in itmList:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 if isinstance(itm, ProjectBrowserFileItem):
9697
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
413 if itm.isPdfFile():
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
414 self.pdfFile.emit(itm.fileName())
cdaa3cc805f7 Started implementing a PDF viewer tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
415 elif itm.isSvgFile():
7482
11b79ec79b6f ProjectOthersBrowser: changed the order of the file type test to make sure that SVG files are opened with the SVG viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
416 self.svgFile.emit(itm.fileName())
11b79ec79b6f ProjectOthersBrowser: changed the order of the file type test to make sure that SVG files are opened with the SVG viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
417 elif itm.isPixmapFile():
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
418 self.pixmapFile.emit(itm.fileName())
8282
16b243bdb12f UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8270
diff changeset
419 elif itm.isEricGraphicsFile():
16b243bdb12f UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8270
diff changeset
420 self.umlFile.emit(itm.fileName())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 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: 9402
diff changeset
422 if MimeTypes.isTextFile(itm.fileName()):
476
121633976eca Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
423 self.sourceFile.emit(itm.fileName())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 QDesktopServices.openUrl(QUrl(itm.fileName()))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
426
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
427 def _openFileInEditor(self):
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
428 """
8925
8375eb895f70 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8911
diff changeset
429 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
430 """
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
431 itmList = self.getSelectedItems()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
432
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
433 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: 9402
diff changeset
434 if isinstance(itm, ProjectBrowserFileItem) and MimeTypes.isTextFile(
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: 9402
diff changeset
435 itm.fileName()
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: 9402
diff changeset
436 ):
8909
1fd7ed5f83a6 File Browser, Project Others Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
437 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
438
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
439 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
440 """
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
441 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
442 """
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
443 itmList = self.getSelectedItems()
68c26f72c0d1 Added the capability to show a file's mime type and to add it to the text mime types list to the project others browser and the file browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
444 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: 9402
diff changeset
445 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
446 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: 8318
diff changeset
447 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
448 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
449 self.tr("Show Mime-Type"),
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9573
diff changeset
450 self.tr("""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
451 )
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
452 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: 8318
diff changeset
453 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
454 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
455 self.tr("Show Mime-Type"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
456 self.tr("""The file has the mime type <b>{0}</b>.""").format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
457 mimetype
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
458 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
459 )
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
460 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
461 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
462 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: 8318
diff changeset
463 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
464 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
465 self.tr("Show Mime-Type"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
466 self.tr("""The file has the mime type <b>{0}</b>.""").format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
467 mimetype
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
468 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
469 )
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
470 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: 8318
diff changeset
471 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
472 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
473 self.tr("Show Mime-Type"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
474 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
475 """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
476 """<br/> Shall it be added to the list of"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
477 """ text mime types?"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
478 ).format(mimetype),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
479 )
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
480 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
481 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
482 Preferences.setUI("TextMimeTypes", textMimeTypesList)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
483
10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
484 def __addNewOthersDirectory(self, useCurrent=True):
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
485 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
486 Private method to add a new directory to the project.
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
487
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
488 @param useCurrent flag indicating to use the current index for the directory
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
489 dialog (defaults to True)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
490 @type bool (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
491 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
492 from .NewDirectoryDialog import NewDirectoryDialog
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
493
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
494 isRemote = FileSystemUtilities.isRemoteFileName(self.project.getProjectPath())
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
495 remotefsInterface = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
496 ericApp().getObject("EricServer").getServiceInterface("FileSystem")
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
497 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
498
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
499 dn = self.currentDirectory() if useCurrent else self.project.getProjectPath()
11006
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10845
diff changeset
500 dlg = NewDirectoryDialog(
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10845
diff changeset
501 strPath=dn, defaultDirectory=dn, remote=isRemote, parent=self
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10845
diff changeset
502 )
10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
503 if dlg.exec() == QDialog.DialogCode.Accepted:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
504 dirname, addToProject = dlg.getDirectory()
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
505 exists = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
506 remotefsInterface.exists(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
507 if isRemote
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
508 else os.path.exists(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
509 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
510 if exists:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
511 EricMessageBox.critical(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
512 self,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
513 self.tr("New directory"),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
514 self.tr(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
515 "<p>A file or directory named <b>{0}</b> already exists."
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
516 " The action will be aborted.</p>"
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
517 ).format(dirname),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
518 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
519 return
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
520
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
521 try:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
522 if isRemote:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
523 remotefsInterface.makedirs(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
524 else:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
525 os.makedirs(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
526 except OSError as err:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
527 EricMessageBox.critical(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
528 self,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
529 self.tr("New directory"),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
530 self.tr(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
531 "<p>The directory <b>{0}</b> could not be created."
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
532 " Aborting...</p><p>Reason: {1}</p>"
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
533 ).format(dirname, str(err)),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
534 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
535 return
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
536
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
537 parentDirname = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
538 remotefsInterface.dirname(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
539 if isRemote
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
540 else os.path.dirname(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
541 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
542
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
543 if addToProject and not self.project.isProjectCategory(dirname, "OTHERS"):
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
544 self.project.addToOthers(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
545 elif parentDirname == self.project.getProjectPath():
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
546 dn = self.project.getRelativePath(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
547 self._model.addNewItem("OTHERS", dn, simple=True)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
548 while True:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
549 # recursively expand all parent items
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
550 dirname = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
551 remotefsInterface.dirname(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
552 if isRemote
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
553 else os.path.dirname(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
554 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
555 dirIndex = self._sortModel.mapFromSource(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
556 self._model.itemIndexByName(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
557 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
558 if dirIndex.isValid():
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
559 self.expand(dirIndex)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
560 else:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
561 break
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
562
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
563 def __addNewOthersFile(self, useCurrent=True):
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
564 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
565 Private method to add a new source file to the project.
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
566
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
567 @param useCurrent flag indicating to use the current index for the directory
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
568 dialog (defaults to True)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
569 @type bool (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
570 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
571 isRemote = FileSystemUtilities.isRemoteFileName(self.project.getProjectPath())
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
572 remotefsInterface = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
573 ericApp().getObject("EricServer").getServiceInterface("FileSystem")
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
574 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
575
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
576 dn = self.currentDirectory() if useCurrent else self.project.getProjectPath()
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
577 filename, ok = EricPathPickerDialog.getStrPath(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
578 self,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
579 self.tr("New file"),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
580 self.tr("Enter the path of the new file:"),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
581 mode=EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
582 strPath=dn,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
583 defaultDirectory=dn,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
584 filters=self.project.getFileCategoryFilters(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
585 categories=["OTHERS"], withAll=False
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
586 ),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
587 remote=isRemote,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
588 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
589 if ok:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
590 exists = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
591 remotefsInterface.exists(filename)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
592 if isRemote
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
593 else os.path.exists(filename)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
594 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
595 if exists:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
596 EricMessageBox.critical(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
597 self,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
598 self.tr("New file"),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
599 self.tr(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
600 "<p>The file <b>{0}</b> already exists. The action will be"
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
601 " aborted.</p>"
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
602 ).format(filename),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
603 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
604 return
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
605
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
606 dirname = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
607 remotefsInterface.dirname(filename)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
608 if isRemote
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
609 else os.path.dirname(filename)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
610 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
611 try:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
612 if isRemote:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
613 remotefsInterface.makedirs(dirname, exist_ok=True)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
614 else:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
615 os.makedirs(dirname, exist_ok=True)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
616 newline = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
617 None if self.project.useSystemEol() else self.project.getEolString()
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
618 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
619 if isRemote:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
620 remotefsInterface.writeFile(filename, b"", newline=newline)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
621 else:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
622 with open(filename, "w", newline=newline) as f:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
623 f.write("")
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
624 except OSError as err:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
625 EricMessageBox.critical(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
626 self,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
627 self.tr("New file"),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
628 self.tr(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
629 "<p>The file <b>{0}</b> could not be created. Aborting...</p>"
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
630 "<p>Reason: {1}</p>"
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
631 ).format(filename, str(err)),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
632 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
633 return
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
634
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
635 if not self.project.isProjectCategory(filename, "OTHERS"):
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
636 self.project.appendFile(filename)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
637 while True:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
638 # recursively expand all parent items
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
639 dirIndex = self._sortModel.mapFromSource(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
640 self._model.itemIndexByName(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
641 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
642 if dirIndex.isValid():
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
643 self.expand(dirIndex)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
644 dirname = (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
645 remotefsInterface.dirname(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
646 if isRemote
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
647 else os.path.dirname(dirname)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
648 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
649 else:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
650 break
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
651
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
652 if MimeTypes.isTextFile(filename):
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
653 self.sourceFile.emit(filename)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10631
diff changeset
654
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
655 def __addOthersFiles(self):
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
656 """
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
657 Private method to add files to the project.
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
658 """
10256
1b728f26d1ae Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10113
diff changeset
659 self.project.addFiles("OTHERS", self.currentDirectory())
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
660
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
661 def __addOthersDirectory(self):
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
662 """
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
663 Private method to add files of a directory to the project.
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
664 """
10256
1b728f26d1ae Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10113
diff changeset
665 self.project.addDirectory("OTHERS", self.currentDirectory())
9362
9daa438fb4de Improved the 'Add Files' and 'Add Directory' context menu actions of the Others project browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
666
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667 def __removeItem(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 """
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
669 Private slot to remove the selected entry from the OTHERS project
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
670 data area.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
671 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
672 itmList = self.getSelectedItems()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
673
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
674 for itm in itmList[:]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
675 if isinstance(itm, ProjectBrowserFileItem):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
676 fn = itm.fileName()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
677 self.closeSourceWindow.emit(fn)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
678 self.project.removeFile(fn)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
679 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
680 dn = itm.dirName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
681 self.project.removeDirectory(dn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
682
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
683 def __deleteItem(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
684 """
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
685 Private method to delete the selected entry from the OTHERS project
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
686 data area.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
687 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
688 itmList = self.getSelectedItems()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
689
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690 items = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
691 names = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 fullNames = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
693 dirItems = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
694 dirNames = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
695 dirFullNames = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
696 for itm in itmList:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 if isinstance(itm, ProjectBrowserFileItem):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
698 fn2 = itm.fileName()
248
f4561c24989a Changed code to better deal with project relative paths on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 234
diff changeset
699 fn = self.project.getRelativePath(fn2)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
700 items.append(itm)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
701 fullNames.append(fn2)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
702 names.append(fn)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
704 dn2 = itm.dirName()
248
f4561c24989a Changed code to better deal with project relative paths on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 234
diff changeset
705 dn = self.project.getRelativePath(dn2)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
706 dirItems.append(itm)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
707 dirFullNames.append(dn2)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
708 dirNames.append(dn)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709 items.extend(dirItems)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
710 fullNames.extend(dirFullNames)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
711 names.extend(dirNames)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
712 del itmList
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
713 del dirFullNames
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
714 del dirNames
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
715
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
716 dlg = DeleteFilesConfirmationDialog(
11218
43dfc40728d2 Modified the 'parent' handling for the DeleteFilesConfirmationDialog class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
717 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
718 self.tr("Delete files/directories"),
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9573
diff changeset
719 self.tr("Do you really want to delete these entries from the project?"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
720 names,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
721 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
722
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: 7923
diff changeset
723 if dlg.exec() == QDialog.DialogCode.Accepted:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 for itm, fn2, fn in zip(items[:], fullNames, names):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 if isinstance(itm, ProjectBrowserFileItem):
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
726 self.closeSourceWindow.emit(fn2)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
727 self.project.deleteFile(fn)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
728 elif isinstance(itm, ProjectBrowserDirectoryItem):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729 self.project.deleteDirectory(fn2)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
730
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 def __refreshItem(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733 Private slot to refresh (repopulate) an item.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
735 itm = self.model().item(self.currentIndex())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736 if isinstance(itm, ProjectBrowserFileItem):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
737 name = itm.fileName()
234
caed45a134f8 Added code to update the Others tab of the project browser (mostly) automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
738 self.project.repopulateItem(name)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
739 elif isinstance(itm, ProjectBrowserDirectoryItem):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
740 name = itm.dirName()
234
caed45a134f8 Added code to update the Others tab of the project browser (mostly) automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
741 self._model.directoryChanged(name)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
742 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
743 name = ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
744
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10256
diff changeset
745 self._resizeColumns()

eric ide

mercurial