|
17 | 17 | ***************************************************************************/ |
18 | 18 | """ |
19 | 19 |
|
| 20 | +import re |
20 | 21 | import shutil |
21 | 22 | import tempfile |
22 | 23 | from enum import Enum |
@@ -361,11 +362,35 @@ def _convert(self, project: QgsProject) -> None: # noqa: PLR0912, PLR0915 |
361 | 362 | project_path = Path(project.fileName()).parent |
362 | 363 | for additional_project_file in additional_project_files: |
363 | 364 | additional_project_file_path = Path(additional_project_file) |
364 | | - relative_path = additional_project_file_path.relative_to(project_path) |
| 365 | + additional_project_file_name = additional_project_file_path.name |
| 366 | + |
| 367 | + additional_project_file_relative_path = ( |
| 368 | + additional_project_file_path.relative_to(project_path) |
| 369 | + ) |
| 370 | + |
365 | 371 | destination_file = self._export_filename.parent.joinpath( |
366 | | - relative_path |
| 372 | + additional_project_file_relative_path |
367 | 373 | ).resolve() |
368 | 374 | destination_file.parent.mkdir(parents=True, exist_ok=True) |
| 375 | + |
| 376 | + if ( |
| 377 | + str(additional_project_file_path) |
| 378 | + == f"{str(self.original_filename)[:-4]}.qml" |
| 379 | + ): |
| 380 | + destination_file = destination_file.parent.joinpath( |
| 381 | + f"{str(export_project_filename.name)[:-4]}.qml" |
| 382 | + ) |
| 383 | + |
| 384 | + elif additional_project_file_name.endswith(".qm"): |
| 385 | + match = re.match( |
| 386 | + rf"^{re.escape(str(self.original_filename)[:-4])}(_[A-Za-z][A-Za-z]\.qm)$", |
| 387 | + str(additional_project_file_path), |
| 388 | + ) |
| 389 | + if match: |
| 390 | + destination_file = destination_file.parent.joinpath( |
| 391 | + f"{str(export_project_filename.name)[:-4]}{match.group(1)}" |
| 392 | + ) |
| 393 | + |
369 | 394 | shutil.copy(additional_project_file, str(destination_file)) |
370 | 395 |
|
371 | 396 | # save the offline project twice so that the offline plugin can "know" that it's a relative path |
|
0 commit comments