12 import time |
12 import time |
13 import typing |
13 import typing |
14 |
14 |
15 from PyQt6.QtCore import QObject |
15 from PyQt6.QtCore import QObject |
16 |
16 |
17 from eric7 import Preferences, Utilities |
17 from eric7 import Preferences |
18 from eric7.EricGui.EricOverrideCursor import EricOverridenCursor |
18 from eric7.EricGui.EricOverrideCursor import EricOverridenCursor |
19 from eric7.EricWidgets import EricMessageBox |
19 from eric7.EricWidgets import EricMessageBox |
|
20 from eric7.SystemUtilities import FileSystemUtilities |
20 |
21 |
21 Project = typing.TypeVar("Project") |
22 Project = typing.TypeVar("Project") |
22 |
23 |
23 |
24 |
24 class ProjectFile(QObject): |
25 class ProjectFile(QObject): |
91 "TRANSLATIONSBINPATH", |
92 "TRANSLATIONSBINPATH", |
92 "TRANSLATIONSOURCESTARTPATH", |
93 "TRANSLATIONSOURCESTARTPATH", |
93 "MAINSCRIPT", |
94 "MAINSCRIPT", |
94 ): |
95 ): |
95 with contextlib.suppress(KeyError): |
96 with contextlib.suppress(KeyError): |
96 projectDict["project"][key] = Utilities.fromNativeSeparators( |
97 projectDict["project"][key] = FileSystemUtilities.fromNativeSeparators( |
97 projectDict["project"][key] |
98 projectDict["project"][key] |
98 ) |
99 ) |
99 |
100 |
100 try: |
101 try: |
101 jsonString = json.dumps(projectDict, indent=2, sort_keys=True) |
102 jsonString = json.dumps(projectDict, indent=2, sort_keys=True) |
141 |
142 |
142 # modify paths to contain native separators |
143 # modify paths to contain native separators |
143 for key in self.__project.getFileCategories() + ["TRANSLATIONEXCEPTIONS"]: |
144 for key in self.__project.getFileCategories() + ["TRANSLATIONEXCEPTIONS"]: |
144 with contextlib.suppress(KeyError): |
145 with contextlib.suppress(KeyError): |
145 projectDict["project"][key] = [ |
146 projectDict["project"][key] = [ |
146 Utilities.toNativeSeparators(f) for f in projectDict["project"][key] |
147 FileSystemUtilities.toNativeSeparators(f) |
|
148 for f in projectDict["project"][key] |
147 ] |
149 ] |
148 for key in ( |
150 for key in ( |
149 "SPELLWORDS", |
151 "SPELLWORDS", |
150 "SPELLEXCLUDES", |
152 "SPELLEXCLUDES", |
151 "TRANSLATIONPATTERN", |
153 "TRANSLATIONPATTERN", |
152 "TRANSLATIONSBINPATH", |
154 "TRANSLATIONSBINPATH", |
153 "TRANSLATIONSOURCESTARTPATH", |
155 "TRANSLATIONSOURCESTARTPATH", |
154 "MAINSCRIPT", |
156 "MAINSCRIPT", |
155 ): |
157 ): |
156 with contextlib.suppress(KeyError): |
158 with contextlib.suppress(KeyError): |
157 projectDict["project"][key] = Utilities.toNativeSeparators( |
159 projectDict["project"][key] = FileSystemUtilities.toNativeSeparators( |
158 projectDict["project"][key] |
160 projectDict["project"][key] |
159 ) |
161 ) |
160 |
162 |
161 self.__project.setProjectData(projectDict["project"]) |
163 self.__project.setProjectData(projectDict["project"]) |
162 |
164 |