src/eric7/Project/ProjectResourcesBrowser.py

Wed, 15 May 2024 10:45:50 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 15 May 2024 10:45:50 +0200
branch
server
changeset 10704
27d21e5163b8
parent 10635
dcec2e0c0036
parent 10692
9becf9ca115c
child 10708
a6094987c1be
permissions
-rw-r--r--

Merged with branch 'eric7' in order to track these changes.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
10439
21c28b0f9e41 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10430
diff changeset
3 # Copyright (c) 2002 - 2024 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a class used to display the resources part of the project.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
10 import contextlib
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import os
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9150
diff changeset
12 import pathlib
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
14 from PyQt6.QtCore import QProcess, QThread, pyqtSignal
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
15 from PyQt6.QtWidgets import QApplication, QDialog, QMenu
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
17 from eric7 import Preferences
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: 9221
diff changeset
18 from eric7.EricGui import EricPixmapCache
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
19 from eric7.EricWidgets import EricFileDialog, EricMessageBox
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
20 from eric7.EricWidgets.EricApplication import ericApp
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
21 from eric7.EricWidgets.EricProgressDialog import EricProgressDialog
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
22 from eric7.SystemUtilities import FileSystemUtilities, QtUtilities
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
23 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
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: 9221
diff changeset
24 from eric7.UI.NotificationWidget import NotificationTypes
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
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: 9517
diff changeset
26 from .FileCategoryRepositoryItem import FileCategoryRepositoryItem
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
27 from .ProjectBaseBrowser import ProjectBaseBrowser
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
28 from .ProjectBrowserModel import (
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
29 ProjectBrowserFileItem,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
30 ProjectBrowserSimpleDirectoryItem,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9462
diff changeset
31 )
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
32 from .ProjectBrowserRepositoryItem import ProjectBrowserRepositoryItem
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
34
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 class ProjectResourcesBrowser(ProjectBaseBrowser):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
37 A class used to display the resources part of the project.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38
501
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
39 @signal appendStderr(str) emitted after something was received from
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
40 a QProcess on stderr
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
41 @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: 2771
diff changeset
42 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
43 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
44
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
45 appendStderr = pyqtSignal(str)
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
427
6af5d12cfecb Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
48 RCFilenameFormatPython = "{0}_rc.py"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
49
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
50 def __init__(self, project, projectBrowser, parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
53
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 @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
55 @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
56 @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
57 @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
58 @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
59 @type QWidget
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
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
61 ProjectBaseBrowser.__init__(self, project, "resource", parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
62
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
63 self.selectedItemsFilter = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
64 ProjectBrowserFileItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
65 ProjectBrowserSimpleDirectoryItem,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
66 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
67
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
68 self.setWindowTitle(self.tr("Resources"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
70 self.setWhatsThis(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
71 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
72 """<b>Project Resources Browser</b>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
73 """<p>This allows to easily see all resources contained in the"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74 """ current project. Several actions can be executed via the"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
75 """ context menu.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
76 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
77 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.compileProc = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80
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: 9517
diff changeset
81 # 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: 9517
diff changeset
82 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: 9517
diff changeset
83 "RESOURCES",
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: 9517
diff changeset
84 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: 9517
diff changeset
85 fileCategoryFilterTemplate=self.tr("Resource 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: 9517
diff changeset
86 fileCategoryUserString=self.tr("Resource 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: 9517
diff changeset
87 fileCategoryTyeString=self.tr("Resources"),
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: 9517
diff changeset
88 fileCategoryExtensions=["*.qrc"],
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: 9517
diff changeset
89 ),
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: 9517
diff changeset
90 )
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: 9517
diff changeset
91
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
92 # 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
93 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
94 "resources",
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
95 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
96 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
97 projectBrowserUserString=self.tr("Resources 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
98 priority=75,
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
99 fileCategory="RESOURCES",
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
100 fileFilter="resource",
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
101 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
102 ),
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
103 )
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
104
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: 9517
diff changeset
105 # Connect signals of Project.
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
106 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
107 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
108 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
109 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
110 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
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: 9517
diff changeset
112 # 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
113 projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged)
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
114 projectBrowser.processChangedProjectFiles.connect(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
115 self.__compileChangedResources
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
116 )
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
117
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: 9517
diff changeset
118 # 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
119 self.appendStderr.connect(projectBrowser.appendStderr)
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
120 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
121 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
122
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
123 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
124 """
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 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
126
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 @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
128 @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
129 """
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 return EricPixmapCache.getIcon("projectResources")
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
131
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 def _createPopupMenus(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 Protected overloaded method to generate the popup menu.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 self.menuActions = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.multiMenuActions = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 self.dirMenuActions = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 self.dirMultiMenuActions = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
140
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 self.menu = QMenu(self)
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
142 if (
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
143 FileSystemUtilities.isPlainFileName(self.project.getProjectPath())
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
144 and self.project.getProjectType() in [
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
145 "PyQt5",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
146 "PyQt5C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
147 "PySide2",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
148 "PySide2C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
149 "PySide6",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
150 "PySide6C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
151 ]
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
152 ):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153 self.menu.addAction(self.tr("Compile resource"), self.__compileResource)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
154 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
155 self.tr("Compile all resources"), self.__compileAllResources
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
156 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 self.menu.addSeparator()
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
158 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159 self.tr("Configure rcc Compiler"), self.__configureRccCompiler
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
160 )
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
161 self.menu.addSeparator()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 if self.hooks["compileResource"] is not None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 self.menu.addAction(
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
165 self.hooksMenuEntries.get(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
166 "compileResource", self.tr("Compile resource")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
168 self.__compileResource,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
169 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 if self.hooks["compileAllResources"] is not None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 self.menu.addAction(
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
172 self.hooksMenuEntries.get(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
173 "compileAllResources", self.tr("Compile all resources")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
174 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
175 self.__compileAllResources,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
176 )
7266
d001bc703c29 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
177 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
178 self.hooks["compileResource"] is not None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
179 or self.hooks["compileAllResources"] is not None
7266
d001bc703c29 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
180 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 self.menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
182 self.menu.addAction(self.tr("Open"), self.__openFile)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 self.menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
184 act = self.menu.addAction(self.tr("Rename file"), self._renameFile)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 self.menuActions.append(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186 act = self.menu.addAction(self.tr("Remove from project"), self._removeFile)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 self.menuActions.append(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
188 act = self.menu.addAction(self.tr("Delete"), self.__deleteFile)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 self.menuActions.append(act)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 self.menu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
191 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
192 if self.project.getProjectType() in [
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
193 "PyQt5",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
194 "PyQt5C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
195 "PySide2",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
196 "PySide2C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
197 "PySide6",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
198 "PySide6C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
199 ]:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
200 self.menu.addAction(self.tr("New resource..."), self.__newResource)
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
201 else:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
202 if self.hooks["newResource"] is not None:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
203 self.menu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
204 self.hooksMenuEntries.get(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
205 "newResource", self.tr("New resource...")
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
206 ),
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
207 self.__newResource,
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
208 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
209 self.menu.addAction(self.tr("Add resources..."), self.__addResourceFiles)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
210 self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
211 self.tr("Add resources directory..."), self.__addResourcesDirectory
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
212 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
213 self.menu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
214 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
215 self.menu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
216 self.tr("Show in File Manager"), self._showInFileManager
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
217 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
218 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
219 self.menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
220 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
221 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
222 self.menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
223 self.menu.addAction(self.tr("Configure..."), self._configure)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 self.backMenu = QMenu(self)
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
226 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
227 if self.project.getProjectType() in [
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
228 "PyQt5",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
229 "PyQt5C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
230 "PySide2",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
231 "PySide2C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
232 "PySide6",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
233 "PySide6C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
234 ]:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 self.backMenu.addAction(
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
236 self.tr("Compile all resources"), self.__compileAllResources
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
237 )
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
238 self.backMenu.addSeparator()
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
239 self.backMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
240 self.tr("Configure rcc Compiler"), self.__configureRccCompiler
9221
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.backMenu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
243 self.backMenu.addAction(self.tr("New resource..."), self.__newResource)
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
244 else:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
245 if self.hooks["compileAllResources"] is not None:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
246 self.backMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
247 self.hooksMenuEntries.get(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
248 "compileAllResources", self.tr("Compile all resources")
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
249 ),
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
250 self.__compileAllResources,
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
251 )
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
252 self.backMenu.addSeparator()
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
253 if self.hooks["newResource"] is not None:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
254 self.backMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
255 self.hooksMenuEntries.get(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
256 "newResource", self.tr("New resource...")
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
257 ),
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
258 self.__newResource,
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
259 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
260 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: 9514
diff changeset
261 self.tr("Add resources..."), lambda: self.project.addFiles("RECOURCES")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
262 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
263 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: 9514
diff changeset
264 self.tr("Add resources directory..."),
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: 9514
diff changeset
265 lambda: self.project.addDirectory("RESOURCES"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
266 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 self.backMenu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
268 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
269 self.backMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
270 self.tr("Show in File Manager"), self._showProjectInFileManager
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
271 )
10398
ef1ea18994d5 Project Browser
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10256
diff changeset
272 self.backMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
273 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: 3020
diff changeset
274 self.backMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
275 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
276 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 self.backMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
278 self.backMenu.addAction(self.tr("Configure..."), self._configure)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 self.backMenu.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 # create the menu for multiple selected files
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 self.multiMenu = QMenu(self)
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
283 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
284 if self.project.getProjectType() in [
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
285 "PyQt5",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
286 "PyQt5C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
287 "PySide2",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
288 "PySide2C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
289 "PySide6",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
290 "PySide6C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
291 ]:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 act = self.multiMenu.addAction(
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
293 self.tr("Compile resources"), self.__compileSelectedResources
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
294 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 self.multiMenu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
296 self.multiMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
297 self.tr("Configure rcc Compiler"), self.__configureRccCompiler
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
298 )
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
299 self.multiMenu.addSeparator()
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
300 else:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
301 if self.hooks["compileSelectedResources"] is not None:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
302 act = self.multiMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
303 self.hooksMenuEntries.get(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
304 "compileSelectedResources", self.tr("Compile resources")
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
305 ),
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
306 self.__compileSelectedResources,
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
307 )
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
308 self.multiMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
309 self.multiMenu.addAction(self.tr("Open"), self.__openFile)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 self.multiMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
311 act = self.multiMenu.addAction(self.tr("Remove from project"), self._removeFile)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 self.multiMenuActions.append(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
313 act = self.multiMenu.addAction(self.tr("Delete"), self.__deleteFile)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 self.multiMenuActions.append(act)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 self.multiMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
316 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: 3020
diff changeset
317 self.multiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
318 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
319 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 self.multiMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
321 self.multiMenu.addAction(self.tr("Configure..."), self._configure)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 self.dirMenu = QMenu(self)
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
324 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
325 if self.project.getProjectType() in [
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
326 "PyQt5",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
327 "PyQt5C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
328 "PySide2",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
329 "PySide2C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
330 "PySide6",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
331 "PySide6C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
332 ]:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 self.dirMenu.addAction(
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
334 self.tr("Compile all resources"), self.__compileAllResources
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
335 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 self.dirMenu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
337 self.dirMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
338 self.tr("Configure rcc Compiler"), self.__configureRccCompiler
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
339 )
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
340 self.dirMenu.addSeparator()
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
341 else:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
342 if self.hooks["compileAllResources"] is not None:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
343 self.dirMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
344 self.hooksMenuEntries.get(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
345 "compileAllResources", self.tr("Compile all resources")
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
346 ),
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
347 self.__compileAllResources,
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
348 )
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
349 self.dirMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
350 act = self.dirMenu.addAction(self.tr("Remove from project"), self._removeDir)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 self.dirMenuActions.append(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
352 act = self.dirMenu.addAction(self.tr("Delete"), self._deleteDirectory)
2540
f346433ea963 Added a context menu entry to delete the selected directory to the project viewers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
353 self.dirMenuActions.append(act)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 self.dirMenu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
355 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
356 self.dirMenu.addAction(self.tr("New resource..."), self.__newResource)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
357 self.dirMenu.addAction(self.tr("Add resources..."), self.__addResourceFiles)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
358 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
359 self.tr("Add resources directory..."), self.__addResourcesDirectory
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
360 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 self.dirMenu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
362 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
363 self.dirMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
364 self.tr("Show in File Manager"), self._showInFileManager
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
365 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
366 self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
367 self.dirMenu.addSeparator()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
368 self.dirMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
369 self.dirMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
370 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
371 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 self.dirMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
373 self.dirMenu.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
374
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 self.dirMultiMenu = QMenu(self)
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
376 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
377 if self.project.getProjectType() in [
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
378 "PyQt5",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
379 "PyQt5C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
380 "PySide2",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
381 "PySide2C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
382 "PySide6",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
383 "PySide6C",
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
384 ]:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 self.dirMultiMenu.addAction(
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
386 self.tr("Compile all resources"), self.__compileAllResources
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
387 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 self.dirMultiMenu.addSeparator()
10635
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
389 self.dirMultiMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
390 self.tr("Configure rcc Compiler"), self.__configureRccCompiler
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
391 )
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
392 self.dirMultiMenu.addSeparator()
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
393 else:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
394 if self.hooks["compileAllResources"] is not None:
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
395 self.dirMultiMenu.addAction(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
396 self.hooksMenuEntries.get(
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
397 "compileAllResources", self.tr("Compile all resources")
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
398 ),
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
399 self.__compileAllResources,
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
400 )
dcec2e0c0036 Adapted the project forms, translations and resources browser with respect to 'eric-ide' server projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
401 self.dirMultiMenu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
402 self.dirMultiMenu.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: 9514
diff changeset
403 self.tr("Add resources..."), lambda: self.project.addFiles("RECOURCES")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
404 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
405 self.dirMultiMenu.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: 9514
diff changeset
406 self.tr("Add resources directory..."),
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: 9514
diff changeset
407 lambda: self.project.addDirectory("RESOURCES"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
408 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 self.dirMultiMenu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
410 self.dirMultiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
411 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
412 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
413 self.dirMultiMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
414 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
415 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 self.dirMultiMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
417 self.dirMultiMenu.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
418
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 427
diff changeset
419 self.menu.aboutToShow.connect(self.__showContextMenu)
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 427
diff changeset
420 self.multiMenu.aboutToShow.connect(self.__showContextMenuMulti)
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 427
diff changeset
421 self.dirMenu.aboutToShow.connect(self.__showContextMenuDir)
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 427
diff changeset
422 self.dirMultiMenu.aboutToShow.connect(self.__showContextMenuDirMulti)
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 427
diff changeset
423 self.backMenu.aboutToShow.connect(self.__showContextMenuBack)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 self.mainMenu = self.menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
425
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 def _contextMenuRequested(self, coord):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 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
429
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
430 @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
431 @type QPoint
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 if not self.project.isOpen():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
435
9462
e65379fdbd97 Changed code to resolve or acknowledge some potential security issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
436 with contextlib.suppress(Exception): # secok
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 553
diff changeset
437 categories = self.getSelectedItemsCountCategorized(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
438 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
439 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 cnt = categories["sum"]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 if cnt <= 1:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 index = self.indexAt(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 if index.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444 self._selectSingleItem(index)
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 553
diff changeset
445 categories = self.getSelectedItemsCountCategorized(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
446 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
447 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448 cnt = categories["sum"]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
449
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
450 bfcnt = categories[str(ProjectBrowserFileItem)]
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
451 sdcnt = categories[str(ProjectBrowserSimpleDirectoryItem)]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 if cnt > 1 and cnt == bfcnt:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453 self.multiMenu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
454 elif cnt > 1 and cnt == sdcnt:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
455 self.dirMultiMenu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
456 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
457 index = self.indexAt(coord)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
458 if cnt == 1 and index.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
459 if bfcnt == 1:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
460 self.menu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
461 elif sdcnt == 1:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
462 self.dirMenu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
463 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 self.backMenu.popup(self.mapToGlobal(coord))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
465 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 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
467
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
468 def __showContextMenu(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470 Private slot called by the menu aboutToShow signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 ProjectBaseBrowser._showContextMenu(self, self.menu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
473
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
474 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
475
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476 def __showContextMenuMulti(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
478 Private slot called by the multiMenu aboutToShow signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 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
481
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
482 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
483
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 def __showContextMenuDir(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
486 Private slot called by the dirMenu aboutToShow signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 ProjectBaseBrowser._showContextMenuDir(self, self.dirMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
489
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
490 self.showMenu.emit("MainDir", self.dirMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
491
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 def __showContextMenuDirMulti(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
493 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494 Private slot called by the dirMultiMenu aboutToShow signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 ProjectBaseBrowser._showContextMenuDirMulti(self, self.dirMultiMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
497
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
498 self.showMenu.emit("MainDirMulti", self.dirMultiMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
499
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
500 def __showContextMenuBack(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
501 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
502 Private slot called by the backMenu aboutToShow signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
503 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
504 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
505
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
506 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
507
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
508 def __addResourceFiles(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
509 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510 Private method to add resource files to the project.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
511 """
10256
1b728f26d1ae Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10113
diff changeset
512 self.project.addFiles("RESOURCES", self.currentDirectory())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
513
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 def __addResourcesDirectory(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
515 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
516 Private method to add resource files of a directory to the project.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
517 """
10256
1b728f26d1ae Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10113
diff changeset
518 self.project.addDirectory("RESOURCES", self.currentDirectory())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
519
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
520 def _openItem(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
521 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
522 Protected slot to handle the open popup menu entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
523 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524 self.__openFile()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
525
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
526 def __openFile(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 Private slot to handle the Open menu action.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
529 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
530 itmList = self.getSelectedItems()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
531 for itm in itmList[:]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
532 if isinstance(itm, ProjectBrowserFileItem):
476
121633976eca Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 470
diff changeset
533 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
534
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
535 def __newResource(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
536 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
537 Private slot to handle the New Resource menu action.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
538 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
539 itm = self.model().item(self.currentIndex())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
540 if itm is None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
541 path = self.project.ppath
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
542 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
543 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544 path = os.path.dirname(itm.fileName())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
545 except AttributeError:
1040
9e25732c452a Fixed an issue adding a new form or a new resource file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 949
diff changeset
546 try:
9e25732c452a Fixed an issue adding a new form or a new resource file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 949
diff changeset
547 path = itm.dirName()
9e25732c452a Fixed an issue adding a new form or a new resource file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 949
diff changeset
548 except AttributeError:
9e25732c452a Fixed an issue adding a new form or a new resource file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 949
diff changeset
549 path = os.path.join(self.project.ppath, itm.data(0))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
550
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551 if self.hooks["newResource"] is not None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 self.hooks["newResource"](path)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 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: 8336
diff changeset
554 fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
556 self.tr("New Resource"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557 path,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
558 self.tr("Qt Resource Files (*.qrc)"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 "",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
560 EricFileDialog.DontConfirmOverwrite,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
561 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
562
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
563 if not fname:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564 # user aborted or didn't enter a filename
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
565 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
566
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9150
diff changeset
567 fpath = pathlib.Path(fname)
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9150
diff changeset
568 if not fpath.suffix:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
569 ex = selectedFilter.split("(*")[1].split(")")[0]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 if ex:
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9150
diff changeset
571 fpath = fpath.with_suffix(ex)
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9150
diff changeset
572 if fpath.exists():
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: 8336
diff changeset
573 res = EricMessageBox.yesNo(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
574 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
575 self.tr("New Resource"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
576 self.tr("The file already exists! Overwrite it?"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
577 icon=EricMessageBox.Warning,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
578 )
541
00e1a5d060c5 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 539
diff changeset
579 if not res:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
580 # user selected to not overwrite
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
581 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
582
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
583 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
584 newline = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
585 None if self.project.useSystemEol() else self.project.getEolString()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
586 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
587 with fpath.open("w", encoding="utf-8", newline=newline) as rcfile:
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
588 rcfile.write("<!DOCTYPE RCC>\n")
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
589 rcfile.write('<RCC version="1.0">\n')
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
590 rcfile.write("<qresource>\n")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
591 rcfile.write("</qresource>\n")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
592 rcfile.write("</RCC>\n")
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
593 except OSError as e:
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: 8336
diff changeset
594 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
595 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
596 self.tr("New Resource"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
597 self.tr(
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
598 "<p>The new resource file <b>{0}</b> could not"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
599 " be created.<br>Problem: {1}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
600 ).format(fpath, str(e)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
601 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
603
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9150
diff changeset
604 self.project.appendFile(str(fpath))
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9150
diff changeset
605 self.sourceFile.emit(str(fpath))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
606
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
607 def __deleteFile(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
608 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
609 Private method to delete a resource file from the project.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
610 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
611 itmList = self.getSelectedItems()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
612
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
613 files = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
614 fullNames = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
615 for itm in itmList:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
616 fn2 = itm.fileName()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
617 fullNames.append(fn2)
248
f4561c24989a Changed code to better deal with project relative paths on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
618 fn = self.project.getRelativePath(fn2)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
619 files.append(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
620
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
621 dlg = DeleteFilesConfirmationDialog(
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
622 self.parent(),
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
623 self.tr("Delete resources"),
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9527
diff changeset
624 self.tr("Do you really want to delete these resources from the project?"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
625 files,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
626 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
627
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: 7959
diff changeset
628 if dlg.exec() == QDialog.DialogCode.Accepted:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
629 for fn2, fn in zip(fullNames, files):
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
630 self.closeSourceWindow.emit(fn2)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
631 self.project.deleteFile(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
632
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
633 ###########################################################################
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
634 ## Methods to handle the various compile commands
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
635 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
636
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
637 def __readStdout(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
638 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
639 Private slot to handle the readyReadStandardOutput signal of the
7911
4621c9082a43 Added support for PySide6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
640 pyrcc5/pyside2-rcc/pyside6-rcc process.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
641 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642 if self.compileProc is None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643 return
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: 7959
diff changeset
644 self.compileProc.setReadChannel(QProcess.ProcessChannel.StandardOutput)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
645
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646 while self.compileProc and self.compileProc.canReadLine():
9627
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
647 self.__buf.append(
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
648 str(
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
649 self.compileProc.readLine(),
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
650 Preferences.getSystem("IOEncoding"),
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
651 "replace",
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
652 ).rstrip()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
653 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
654
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
655 def __readStderr(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
656 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
657 Private slot to handle the readyReadStandardError signal of the
7911
4621c9082a43 Added support for PySide6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
658 pyrcc5/pyside2-rcc/pyside6-rcc process.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 if self.compileProc is None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
661 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
662
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
663 ioEncoding = Preferences.getSystem("IOEncoding")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
664
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: 7959
diff changeset
665 self.compileProc.setReadChannel(QProcess.ProcessChannel.StandardError)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
666 while self.compileProc and self.compileProc.canReadLine():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
667 s = self.rccCompiler + ": "
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
668 error = str(self.compileProc.readLine(), ioEncoding, "replace")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
669 s += error
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
670 self.appendStderr.emit(s)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
671
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
672 def __compileQRCDone(self, exitCode, exitStatus):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
673 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
674 Private slot to handle the finished signal of the compile process.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
675
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
676 @param exitCode exit code of the process
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
677 @type int
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
678 @param exitStatus exit status of the process
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
679 @type QProcess.ExitStatus
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
680 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
681 self.compileRunning = False
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: 8336
diff changeset
682 ericApp().getObject("ViewManager").enableEditorsCheckFocusIn(True)
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: 8336
diff changeset
683 ui = ericApp().getObject("UserInterface")
9627
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
684 if (
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
685 exitStatus == QProcess.ExitStatus.NormalExit
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
686 and exitCode == 0
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
687 and self.__buf
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
688 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
689 ofn = os.path.join(self.project.ppath, self.compiledFile)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
691 newline = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
692 None if self.project.useSystemEol() else self.project.getEolString()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
693 )
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
694 with open(ofn, "w", encoding="utf-8", newline=newline) as f:
9627
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
695 f.write("\n".join(self.__buf) + "\n")
9514
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
696 if self.compiledFile not in self.project.getProjectData(
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
697 dataKey="SOURCES"
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
698 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
699 self.project.appendFile(ofn)
7955
567f2ec958c3 Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
700 ui.showNotification(
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: 9221
diff changeset
701 EricPixmapCache.getPixmap("resourcesCompiler48"),
7955
567f2ec958c3 Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
702 self.tr("Resource Compilation"),
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9527
diff changeset
703 self.tr("The compilation of the resource file was successful."),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
704 )
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
705 except OSError as msg:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
706 if not self.noDialog:
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: 8336
diff changeset
707 EricMessageBox.information(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
708 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
709 self.tr("Resource Compilation"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
710 self.tr(
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
711 "<p>The compilation of the resource file"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
712 " failed.</p><p>Reason: {0}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
713 ).format(str(msg)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
714 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715 else:
7955
567f2ec958c3 Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
716 ui.showNotification(
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: 9221
diff changeset
717 EricPixmapCache.getPixmap("resourcesCompiler48"),
7955
567f2ec958c3 Changed code to always use the reworked notification system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
718 self.tr("Resource Compilation"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
719 self.tr("The compilation of the resource file failed."),
8265
0090cfa83159 Converted enum names to use all uppercase letters (except for E5PathPickerModes to keep plug-ins using this compatible with previous eric releases).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
720 kind=NotificationTypes.CRITICAL,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
721 timeout=0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
722 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 self.compileProc = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
724
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
725 def __compileQRC(self, fn, noDialog=False, progress=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
727 Private method to compile a .qrc file to a .py file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
728
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729 @param fn filename of the .ui file to be compiled
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
730 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 @param noDialog flag indicating silent operations
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
732 @type bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733 @param progress reference to the progress dialog
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
734 @type QProgressDialog
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
735 @return reference to the compile process
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
736 @rtype QProcess
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
737 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
738 self.compileProc = QProcess()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
739 args = []
9627
4e926eb7e148 Fixed some performance issues in ProjectFormsBrowser and ProjectResourcesBrowser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
740 self.__buf = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
741
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
742 if self.project.getProjectLanguage() == "Python3":
8336
d566c2970f39 Changed the E6Plugin project type to E7Plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
743 if self.project.getProjectType() in ["PyQt5", "PyQt5C"]:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
744 self.rccCompiler = QtUtilities.generatePyQtToolPath("pyrcc5")
6292
e08a94e1ecdd PySide2 support: cintinued implementing support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6291
diff changeset
745 elif self.project.getProjectType() in ["PySide2", "PySide2C"]:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
746 self.rccCompiler = QtUtilities.generatePySideToolPath(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
747 "pyside2-rcc", variant=2
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
748 )
7911
4621c9082a43 Added support for PySide6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
749 elif self.project.getProjectType() in ["PySide6", "PySide6C"]:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
750 self.rccCompiler = QtUtilities.generatePySideToolPath(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
751 "pyside6-rcc", variant=6
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
752 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
753 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
754 return None
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
755 defaultParameters = self.project.getDefaultRccCompilerParameters()
9514
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
756 rccParameters = self.project.getProjectData(dataKey="RCCPARAMS")
7266
d001bc703c29 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
757 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
758 rccParameters["CompressionThreshold"]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
759 != defaultParameters["CompressionThreshold"]
7266
d001bc703c29 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
760 ):
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
761 args.append("-threshold")
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
762 args.append(str(rccParameters["CompressionThreshold"]))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
763 if rccParameters["CompressLevel"] != defaultParameters["CompressLevel"]:
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
764 args.append("-compress")
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
765 args.append(str(rccParameters["CompressLevel"]))
7266
d001bc703c29 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
766 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
767 rccParameters["CompressionDisable"]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
768 != defaultParameters["CompressionDisable"]
7266
d001bc703c29 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
769 ):
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
770 args.append("-no-compress")
7266
d001bc703c29 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
771 if rccParameters["PathPrefix"] != defaultParameters["PathPrefix"]:
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
772 args.append("-root")
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
773 args.append(rccParameters["PathPrefix"])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
775 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
776
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
777 rcc = self.rccCompiler
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
778
10692
9becf9ca115c Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
779 ofn, _ext = os.path.splitext(fn)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
780 fn = os.path.join(self.project.ppath, fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
781
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
782 dirname, filename = os.path.split(ofn)
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
783 if self.project.getProjectLanguage() == "Python3":
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
784 self.compiledFile = os.path.join(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
785 dirname, self.RCFilenameFormatPython.format(filename)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
786 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
787
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
788 args.append(fn)
464
a2b1d1770ef0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
789 self.compileProc.finished.connect(self.__compileQRCDone)
a2b1d1770ef0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
790 self.compileProc.readyReadStandardOutput.connect(self.__readStdout)
470
99d8c50ba42f Fixed some bugs introduced by signal/slot API conversion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 464
diff changeset
791 self.compileProc.readyReadStandardError.connect(self.__readStderr)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
792
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
793 self.noDialog = noDialog
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
794 self.compileProc.start(rcc, args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2741
diff changeset
795 procStarted = self.compileProc.waitForStarted(5000)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
796 if procStarted:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
797 self.compileRunning = True
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: 8336
diff changeset
798 ericApp().getObject("ViewManager").enableEditorsCheckFocusIn(False)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799 return self.compileProc
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
800 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801 self.compileRunning = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
802 if progress is not None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 progress.cancel()
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: 8336
diff changeset
804 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2995
diff changeset
805 self,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
806 self.tr("Process Generation Error"),
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
807 self.tr(
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9527
diff changeset
808 "Could not start {0}.<br>Ensure that it is in the search path."
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
809 ).format(self.rccCompiler),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
810 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
811 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
812
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
813 def __compileResource(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
814 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
815 Private method to compile a resource to a source file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
816 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
817 itm = self.model().item(self.currentIndex())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
818 fn2 = itm.fileName()
248
f4561c24989a Changed code to better deal with project relative paths on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
819 fn = self.project.getRelativePath(fn2)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820 if self.hooks["compileResource"] is not None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
821 self.hooks["compileResource"](fn)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
822 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823 self.__compileQRC(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
824
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
825 def __compileAllResources(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
826 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 Private method to compile all resources to source files.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829 if self.hooks["compileAllResources"] is not None:
9514
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
830 self.hooks["compileAllResources"](
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
831 self.project.getProjectData(dataKey="RESOURCES")
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
832 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
833 else:
9514
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
834 numResources = len(self.project.getProjectData(dataKey="RESOURCES"))
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: 8336
diff changeset
835 progress = EricProgressDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
836 self.tr("Compiling resources..."),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
837 self.tr("Abort"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
838 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
839 numResources,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
840 self.tr("%v/%m Resources"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
841 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
842 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
843 progress.setModal(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
844 progress.setMinimumDuration(0)
3478
beec1d9c1851 Correct window titles of progress dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
845 progress.setWindowTitle(self.tr("Resources"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
846
9514
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
847 for prog, fn in enumerate(self.project.getProjectData(dataKey="RESOURCES")):
8220
006ee31b4835 Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
848 progress.setValue(prog)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
849 if progress.wasCanceled():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
850 break
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
851 proc = self.__compileQRC(fn, True, progress)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 if proc is not None:
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: 7959
diff changeset
853 while proc.state() == QProcess.ProcessState.Running:
8943
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
854 QThread.msleep(100)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
855 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
856 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
857 break
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
858 progress.setValue(numResources)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
859
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
860 def __compileSelectedResources(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
861 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
862 Private method to compile selected resources to source files.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
863 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
864 items = self.getSelectedItems()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
865 files = [self.project.getRelativePath(itm.fileName()) for itm in items]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
866
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
867 if self.hooks["compileSelectedResources"] is not None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
868 self.hooks["compileSelectedResources"](files)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
869 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
870 numResources = len(files)
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: 8336
diff changeset
871 progress = EricProgressDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
872 self.tr("Compiling resources..."),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
873 self.tr("Abort"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
874 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
875 numResources,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
876 self.tr("%v/%m Resources"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
877 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
878 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
879 progress.setModal(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
880 progress.setMinimumDuration(0)
3478
beec1d9c1851 Correct window titles of progress dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
881 progress.setWindowTitle(self.tr("Resources"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
882
8220
006ee31b4835 Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
883 for prog, fn in enumerate(files):
006ee31b4835 Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
884 progress.setValue(prog)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
885 if progress.wasCanceled():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
886 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
887 if not fn.endswith(".ui.h"):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
888 proc = self.__compileQRC(fn, True, progress)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
889 if proc is not None:
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: 7959
diff changeset
890 while proc.state() == QProcess.ProcessState.Running:
8943
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
891 QThread.msleep(100)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
892 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
893 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
894 break
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
895 progress.setValue(numResources)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
896
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
897 def __checkResourcesNewer(self, filename, mtime):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
898 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
899 Private method to check, if any file referenced in a resource
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
900 file is newer than a given time.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
901
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
902 @param filename filename of the resource file
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
903 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
904 @param mtime modification time to check against
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
905 @type int
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
906 @return flag indicating some file is newer
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10398
diff changeset
907 @rtype boolean)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
908 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
909 try:
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
910 with open(filename, "r", encoding="utf-8") as f:
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
911 buf = f.read()
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7785
diff changeset
912 except OSError:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
913 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
914
1676
54f387117fee Fixed an issue in the project resources viewer causing a resourcefile not being recompiled when a linked resource has changed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
915 qrcDirName = os.path.dirname(filename)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
916 lbuf = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
917 for line in buf.splitlines():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
918 line = line.strip()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
919 if line.lower().startswith("<file>") or line.lower().startswith("<file "):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
920 lbuf = line
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
921 elif lbuf:
427
6af5d12cfecb Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
922 lbuf = "{0}{1}".format(lbuf, line)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
923 if lbuf.lower().endswith("</file>"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
924 rfile = lbuf.split(">", 1)[1].split("<", 1)[0]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
925 if not os.path.isabs(rfile):
1676
54f387117fee Fixed an issue in the project resources viewer causing a resourcefile not being recompiled when a linked resource has changed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
926 rfile = os.path.join(qrcDirName, rfile)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
927 if os.path.exists(rfile) and os.stat(rfile).st_mtime > mtime:
826
2e3e2055e715 Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
928 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
929
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
930 lbuf = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
931
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
933
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
934 def __compileChangedResources(self):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
935 """
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
936 Private method to compile all changed resources to source files.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
937 """
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
938 if Preferences.getProject("AutoCompileResources"):
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
939 if self.hooks["compileChangedResources"] is not None:
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
940 self.hooks["compileChangedResources"](
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
941 self.project.getProjectData(dataKey="RESOURCES")
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
942 )
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
943 else:
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
944 if len(self.project.getProjectData(dataKey="RESOURCES")) == 0:
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
945 # The project does not contain resource files
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
946 return
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
947
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
948 progress = EricProgressDialog(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
949 self.tr("Determining changed resources..."),
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
950 self.tr("Abort"),
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
951 0,
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
952 100,
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
953 self.tr("%v/%m Resources"),
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
954 self,
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
955 )
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
956 progress.setMinimumDuration(0)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
957 progress.setWindowTitle(self.tr("Resources"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
958
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
959 # get list of changed resources
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
960 changedResources = []
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
961 progress.setMaximum(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
962 len(self.project.getProjectData(dataKey="RESOURCES"))
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
963 )
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
964 for prog, fn in enumerate(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
965 self.project.getProjectData(dataKey="RESOURCES")
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
966 ):
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
967 progress.setValue(prog)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
968 QApplication.processEvents()
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
969 ifn = os.path.join(self.project.ppath, fn)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
970 if self.project.getProjectLanguage() == "Python3":
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
971 dirname, filename = os.path.split(os.path.splitext(ifn)[0])
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
972 ofn = os.path.join(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
973 dirname, self.RCFilenameFormatPython.format(filename)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
974 )
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
975 else:
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
976 return
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
977 if (
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
978 not os.path.exists(ofn)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
979 or os.stat(ifn).st_mtime > os.stat(ofn).st_mtime
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
980 or self.__checkResourcesNewer(ifn, os.stat(ofn).st_mtime)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
981 ):
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
982 changedResources.append(fn)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
983 progress.setValue(len(self.project.getProjectData(dataKey="RESOURCES")))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
984 QApplication.processEvents()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
985
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
986 if changedResources:
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
987 progress.setLabelText(self.tr("Compiling changed resources..."))
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
988 progress.setMaximum(len(changedResources))
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
989 progress.setValue(0)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
990 QApplication.processEvents()
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
991 for prog, fn in enumerate(changedResources):
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
992 progress.setValue(prog)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
993 if progress.wasCanceled():
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
994 break
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
995 proc = self.__compileQRC(fn, True, progress)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
996 if proc is not None:
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
997 while proc.state() == QProcess.ProcessState.Running:
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
998 QThread.msleep(100)
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
999 QApplication.processEvents()
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
1000 else:
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
1001 break
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
1002 progress.setValue(len(changedResources))
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9516
diff changeset
1003 QApplication.processEvents()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1004
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1005 def handlePreferencesChanged(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1006 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1007 Public slot used to handle the preferencesChanged signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1008 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1009 ProjectBaseBrowser.handlePreferencesChanged(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1010
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1011 def __configureRccCompiler(self):
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1012 """
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1013 Private slot to configure some non-common rcc compiler options.
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1014 """
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1015 from .RccCompilerOptionsDialog import RccCompilerOptionsDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1016
9514
2b104ad132a4 Made the project pdata structure private and added getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9512
diff changeset
1017 params = self.project.getProjectData(dataKey="RCCPARAMS")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1018
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1019 dlg = RccCompilerOptionsDialog(params)
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: 7959
diff changeset
1020 if dlg.exec() == QDialog.DialogCode.Accepted:
6604
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1021 threshold, compression, noCompression, root = dlg.getData()
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1022 if threshold != params["CompressionThreshold"]:
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1023 params["CompressionThreshold"] = threshold
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1024 self.project.setDirty(True)
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1025 if compression != params["CompressLevel"]:
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1026 params["CompressLevel"] = compression
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1027 self.project.setDirty(True)
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1028 if noCompression != params["CompressionDisable"]:
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1029 params["CompressionDisable"] = noCompression
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1030 self.project.setDirty(True)
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1031 if root != params["PathPrefix"]:
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1032 params["PathPrefix"] = root
a73d553ef521 ProjectFormsBrowser: started implementing support for rcc compiler options
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6371
diff changeset
1033 self.project.setDirty(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1034
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1035 ###########################################################################
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1036 ## Support for hooks below
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1037 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1038
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1039 def _initHookMethods(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1040 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1041 Protected method to initialize the hooks dictionary.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1042
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1043 Supported hook methods are:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1044 <ul>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1045 <li>compileResource: takes filename as parameter</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1046 <li>compileAllResources: takes list of filenames as parameter</li>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1047 <li>compileChangedResources: takes list of filenames as parameter</li>
2995
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1048 <li>compileSelectedResources: takes list of all form filenames as
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1049 parameter</li>
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1050 <li>newResource: takes full directory path of new file as
63d874899b8b Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1051 parameter</li>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1052 </ul>
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1053
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1054 <b>Note</b>: Filenames are relative to the project directory, if not
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1055 specified differently.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1056 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1057 self.hooks = {
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1058 "compileResource": None,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1059 "compileAllResources": None,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1060 "compileChangedResources": None,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1061 "compileSelectedResources": None,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1062 "newResource": None,
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1063 }

eric ide

mercurial