Skip to content

Commit 2f2c83d

Browse files
committed
add wait cursor override for primary save/delete functions
1 parent 174bfb6 commit 2f2c83d

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:
@@ -532,6 +533,7 @@ def _delete_feature(feature: QgsFeature, layer: QgsVectorLayer, delete_text: str
532533
return layer.commitChanges(stopEditing=False)
533534

534535

536+
@use_wait_cursor
535537
def save_plan(plan: Plan) -> QgsFeature | None:
536538
feature = PlanLayer.feature_from_model(plan)
537539
layer = PlanLayer.get_from_project()
@@ -585,6 +587,7 @@ def save_plan(plan: Plan) -> QgsFeature | None:
585587
return feature
586588

587589

590+
@use_wait_cursor
588591
def save_plan_feature(plan_model: PlanFeature, plan_id: str | None = None) -> QgsFeature | None:
589592
layer_name = plan_model.layer_name
590593
if not layer_name:
@@ -630,6 +633,7 @@ def save_plan_feature(plan_model: PlanFeature, plan_id: str | None = None) -> Qg
630633
return plan_feature
631634

632635

636+
@use_wait_cursor
633637
def save_regulation_group(regulation_group: RegulationGroup, plan_id: str | None = None) -> QgsFeature | None:
634638
feature = RegulationGroupLayer.feature_from_model(regulation_group, plan_id)
635639
layer = RegulationGroupLayer.get_from_project()
@@ -675,6 +679,7 @@ def save_regulation_group(regulation_group: RegulationGroup, plan_id: str | None
675679
return feature
676680

677681

682+
@use_wait_cursor
678683
def delete_regulation_group(regulation_group: RegulationGroup, plan_id: str | None = None) -> bool:
679684
if regulation_group.id_ is None:
680685
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)