Skip to content

Commit d1ec4ac

Browse files
elpasonyalldawson
authored andcommitted
Sync in-place button state
1 parent e75ebad commit d1ec4ac

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

python/plugins/processing/ProcessingPlugin.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import shutil
2929
import os
3030
import sys
31+
from functools import partial
3132

3233
from qgis.core import (QgsApplication,
3334
QgsProcessingUtils,
@@ -254,9 +255,16 @@ def initGui(self):
254255
initializeMenus()
255256
createMenus()
256257

257-
self.iface.currentLayerChanged.connect(self.layer_changed)
258+
# In-place editing button state sync
259+
self.iface.currentLayerChanged.connect(self.sync_in_place_button_state)
260+
self.iface.mapCanvas().selectionChanged.connect(self.sync_in_place_button_state)
261+
self.iface.actionToggleEditing().triggered.connect(partial(self.sync_in_place_button_state, None))
262+
self.sync_in_place_button_state()
258263

259-
def layer_changed(self, layer):
264+
def sync_in_place_button_state(self, layer=None):
265+
"""Synchronise the button state with layer state and selection"""
266+
if layer is None:
267+
layer = self.iface.activeLayer()
260268
if layer is None or layer.type() != QgsMapLayer.VectorLayer or not layer.isEditable() or not layer.selectedFeatureCount():
261269
self.editSelectedAction.setChecked(False)
262270
self.editSelectedAction.setEnabled(False)

0 commit comments

Comments
 (0)