From 3ffdb4b97eae1a648051f2477f7db314b85cc332 Mon Sep 17 00:00:00 2001 From: Mathieu Pellerin Date: Sat, 24 Feb 2024 10:42:11 +0700 Subject: [PATCH] Make it compatible with ancien QGIS versions --- libqfieldsync/offline_converter.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/libqfieldsync/offline_converter.py b/libqfieldsync/offline_converter.py index f603262..226d276 100644 --- a/libqfieldsync/offline_converter.py +++ b/libqfieldsync/offline_converter.py @@ -153,30 +153,27 @@ def _convert(self, project: QgsProject) -> None: ) temporary_project = QgsProject() - temporary_project.readProject.connect(on_original_project_read) - + temporary_project_filename = "" if self.export_type == ExportType.Cable: # the `backup_filename` is copied right after packaging is requested. It has all the unsaved # project settings, which means they will be available in the packaged project too. - temporary_project.read( - self.backup_filename, - Qgis.ProjectReadFlag.FlagDontResolveLayers - | Qgis.ProjectReadFlag.FlagDontLoadLayouts - | Qgis.ProjectReadFlag.FlagDontLoad3DViews, - ) + temporary_project_filename = self.backup_filename elif self.export_type == ExportType.Cloud: # if you save the project without QGIS GUI, the project no longer has `theMapCanvas` canvas # so we should use the original project file that already has `theMapCanvas`. There is no # gain using the `backup_filename`, since there is no user to modify the project. - temporary_project.read( - project.fileName(), - Qgis.ProjectReadFlag.FlagDontResolveLayers - | Qgis.ProjectReadFlag.FlagDontLoadLayouts - | Qgis.ProjectReadFlag.FlagDontLoad3DViews, - ) + temporary_project_filename = project.fileName() else: raise NotImplementedError(f"Unknown package type: {self.export_type}") + read_flags = QgsProject.ReadFlags() + read_flags |= QgsProject.FlagDontResolveLayers + read_flags |= QgsProject.FlagDontLoadLayouts + if Qgis.versionInt() >= 32600: + read_flags |= QgsProject.FlagDontLoad3DViews + + temporary_project.readProject.connect(on_original_project_read) + temporary_project.read(temporary_project_filename, read_flags) temporary_project.readProject.disconnect(on_original_project_read) self.export_folder.mkdir(parents=True, exist_ok=True)