Skip to content

Commit

Permalink
Adding the functionality for add packaged project filename and title
Browse files Browse the repository at this point in the history
  • Loading branch information
SeqLaz committed Oct 10, 2024
1 parent 7901b65 commit e68860d
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 8 deletions.
26 changes: 22 additions & 4 deletions libqfieldsync/offline_converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ def __init__(
self,
project: QgsProject,
export_folder: str,
export_filename: str,
export_title: str,
area_of_interest_wkt: str,
area_of_interest_crs: Union[str, QgsCoordinateReferenceSystem],
attachment_dirs: List[str],
Expand All @@ -103,6 +105,8 @@ def __init__(
self.trUtf8 = self.tr

self.export_folder = Path(export_folder)
self._export_filename = Path(export_filename).stem
self._export_title = export_title
self.export_type = export_type
self.create_basemap = create_basemap
self.area_of_interest = QgsPolygon()
Expand Down Expand Up @@ -135,7 +139,16 @@ def convert(self, reload_original_project: bool = True) -> None:
"""
project = QgsProject.instance()
self.original_filename = Path(project.fileName())
self.backup_filename = make_temp_qgis_file(project)
if (
self.export_type == ExportType.Cable
and self._export_filename
and self._export_title
):
self.backup_filename = make_temp_qgis_file(
project, self._export_filename, self._export_title
)
else:
self.backup_filename = make_temp_qgis_file(project)

try:
self._convert(project)
Expand Down Expand Up @@ -272,9 +285,14 @@ def _convert(self, project: QgsProject) -> None:
elif layer_action == SyncAction.REMOVE:
project.removeMapLayer(layer)

export_project_filename = self.export_folder.joinpath(
f"{self.original_filename.stem}_qfield.qgs"
)
if self.export_type == ExportType.Cable and self._export_filename:
export_project_filename = self.export_folder.joinpath(
f"{Path(self.backup_filename).stem}_qfield.qgs"
)
else:
export_project_filename = self.export_folder.joinpath(
f"{self.original_filename.stem}_qfield.qgs"
)

# save the original project path
self.project_configuration.original_project_path = str(self.original_filename)
Expand Down
18 changes: 14 additions & 4 deletions libqfieldsync/utils/qgis.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,22 @@ def open_project(filename: str, filename_to_read: Optional[str] = None) -> bool:
return is_success


def make_temp_qgis_file(project: QgsProject) -> str:
def make_temp_qgis_file(
project: QgsProject,
exported_filename: Optional[str] = None,
exported_project_title: Optional[str] = None,
) -> str:
project_backup_dir = tempfile.mkdtemp()
original_filename = project.fileName()
backup_filename = os.path.join(project_backup_dir, f"{project.baseName()}.qgs")
project.write(backup_filename)
project.setFileName(original_filename)
if exported_filename and exported_project_title:
backup_filename = os.path.join(project_backup_dir, f"{exported_filename}.qgs")
project.write(backup_filename)
project.setTitle(exported_project_title)
project.setFileName(backup_filename)
else:
backup_filename = os.path.join(project_backup_dir, f"{project.baseName()}.qgs")
project.write(backup_filename)
project.setFileName(original_filename)

return backup_filename

Expand Down

0 comments on commit e68860d

Please sign in to comment.