Skip to content

Commit 65679ab

Browse files
committed
add wait cursor override for primary save/delete functions
1 parent 734d6ec commit 65679ab

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

arho_feature_template/core/plan_manager.py

+5
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
handle_unsaved_changes,
6161
iface,
6262
set_active_plan_id,
63+
use_wait_cursor,
6364
)
6465

6566
if TYPE_CHECKING:
@@ -533,6 +534,7 @@ def _delete_feature(feature: QgsFeature, layer: QgsVectorLayer, delete_text: str
533534
return layer.commitChanges(stopEditing=False)
534535

535536

537+
@use_wait_cursor
536538
def save_plan(plan: Plan) -> QgsFeature | None:
537539
feature = PlanLayer.feature_from_model(plan)
538540
layer = PlanLayer.get_from_project()
@@ -586,6 +588,7 @@ def save_plan(plan: Plan) -> QgsFeature | None:
586588
return feature
587589

588590

591+
@use_wait_cursor
589592
def save_plan_feature(plan_model: PlanFeature, plan_id: str | None = None) -> QgsFeature | None:
590593
layer_name = plan_model.layer_name
591594
if not layer_name:
@@ -631,6 +634,7 @@ def save_plan_feature(plan_model: PlanFeature, plan_id: str | None = None) -> Qg
631634
return plan_feature
632635

633636

637+
@use_wait_cursor
634638
def save_regulation_group(regulation_group: RegulationGroup, plan_id: str | None = None) -> QgsFeature | None:
635639
feature = RegulationGroupLayer.feature_from_model(regulation_group, plan_id)
636640
layer = RegulationGroupLayer.get_from_project()
@@ -676,6 +680,7 @@ def save_regulation_group(regulation_group: RegulationGroup, plan_id: str | None
676680
return feature
677681

678682

683+
@use_wait_cursor
679684
def delete_regulation_group(regulation_group: RegulationGroup, plan_id: str | None = None) -> bool:
680685
if regulation_group.id_ is None:
681686
iface.messageBar().pushCritical("", "Kaavamääräysryhmän poistaminen epäonnistui (ei IDtä).")

arho_feature_template/utils/misc_utils.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
from typing import TYPE_CHECKING, Any, cast
66

77
from qgis.core import QgsExpressionContextUtils, QgsProject, QgsVectorLayer
8-
from qgis.PyQt.QtCore import QSettings, pyqtBoundSignal
8+
from qgis.PyQt.QtCore import QSettings, Qt, pyqtBoundSignal
99
from qgis.PyQt.QtWidgets import QMessageBox
10-
from qgis.utils import iface
10+
from qgis.utils import OverrideCursor, iface
1111

1212
if TYPE_CHECKING:
1313
from qgis.core import QgsMapLayer
@@ -128,3 +128,11 @@ def deserialize_localized_text(text_value: dict[str, str] | None | Any) -> str |
128128
if isinstance(text_value, dict):
129129
text = text_value.get(LANGUAGE)
130130
return text
131+
132+
133+
def use_wait_cursor(func):
134+
def wrapper(*args, **kwargs):
135+
with OverrideCursor(Qt.WaitCursor):
136+
return func(*args, **kwargs)
137+
138+
return wrapper

0 commit comments

Comments
 (0)