aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside-tools/project_lib/design_studio_project.py
diff options
context:
space:
mode:
authorJaime Resano <Jaime.Resano-Aisa@qt.io>2025-01-21 11:17:07 +0100
committerJaime Resano <Jaime.Resano-Aisa@qt.io>2025-01-22 22:46:43 +0100
commit23b7ff61fb899ef8ae305df134d2c0968dce1fa2 (patch)
tree15f5a0afdf5335b883f531d5824d8994306625b4 /sources/pyside-tools/project_lib/design_studio_project.py
parent30f8707e1c677e3a42a93d1b2b17bd563b9de847 (diff)
pyside6-deploy: 3. Rename project folder to project_lib
This is a refactor in order to improve the code clarity. In the testing of the pyside6-project command, importlib.import_module is used to import the project_lib folder. Currently, importlib.import_module("project") is ambiguous because it may refer to both the file and the folder. It chooses the folder over the file. Task-number: PYSIDE-1612 Pick-to: 6.8 Change-Id: I8903ea9d2112cf2eb7a68d0e302d3c74edcf2c22 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/pyside-tools/project_lib/design_studio_project.py')
-rw-r--r--sources/pyside-tools/project_lib/design_studio_project.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/sources/pyside-tools/project_lib/design_studio_project.py b/sources/pyside-tools/project_lib/design_studio_project.py
new file mode 100644
index 000000000..ef1935dc4
--- /dev/null
+++ b/sources/pyside-tools/project_lib/design_studio_project.py
@@ -0,0 +1,37 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+from pathlib import Path
+
+
+class DesignStudioProject:
+ """
+ Class to handle Design Studio projects. The project structure is as follows:
+ - Python folder
+ - autogen folder
+ - settings.py
+ - resources.py (Compiled resources)
+ - main.py
+ <ProjectName>.qrc (Resources collection file)
+ <ProjectName>.qmlproject
+ <ProjectName>.qmlproject.qtds
+ ... Other files and folders ...
+ """
+
+ def __init__(self, main_file: Path):
+ self.main_file = main_file
+ self.project_dir = main_file.parent.parent
+ self.compiled_resources_file = self.main_file.parent / "autogen" / "resources.py"
+
+ @staticmethod
+ def is_ds_project(main_file: Path) -> bool:
+ return bool(*main_file.parent.parent.glob("*.qmlproject")) and bool(
+ *main_file.parent.parent.glob("*.qmlproject.qtds")
+ )
+
+ def compiled_resources_available(self) -> bool:
+ """
+ Returns whether the resources of the project have been compiled into a .py file.
+ TODO: Make the resources path configurable. Wait for the TOML configuration change
+ """
+ return self.compiled_resources_file.exists()