Skip to content

Commit 42c2918

Browse files
committed
qtvcp -pushbutton/indicatedPushButton: add dis/connect functions
A new test panel wants to be able to set checkable at runtime. We have to disconnect/reconnect signals, as momentary and checkable buttons use different signals
1 parent f30ea65 commit 42c2918

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

lib/python/qtvcp/widgets/simple_widgets.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,21 @@ def enable_logic_check(state):
468468
self.setEnabled(temp)
469469
else:
470470
self.setEnabled(False)
471+
self.connectSignals()
471472

473+
# Disconnect our standard signals
474+
def disconnectSignals(self):
475+
try:
476+
self.toggled.disconnect()
477+
except Exception: pass
478+
try:
479+
self.pressed.disconnect()
480+
self.released.disconnect()
481+
except Exception: pass
482+
483+
# done so we can adjust 'checkable' signals at run time
484+
# ie delete all signals an re apply them
485+
def connectSignals(self):
472486
def _update(state):
473487
self.setChecked(state)
474488
if self._HAL_pin is False:
@@ -1248,7 +1262,22 @@ def _hal_init(self):
12481262
else:
12491263
pname = self._pin_name_
12501264
self.hal_pin = self.HAL_GCOMP_.newpin(str(pname), hal.HAL_BIT, hal.HAL_OUT)
1265+
self.connectSignals()
12511266

1267+
# Disconnect our standard signals
1268+
def disconnectSignals(self):
1269+
try:
1270+
self.toggled.disconnect()
1271+
except Exception: pass
1272+
try:
1273+
self.pressed.disconnect()
1274+
self.released.disconnect()
1275+
except Exception: pass
1276+
1277+
# done so we can adjust 'checkable' signals at run time
1278+
# ie delete all signals an re apply them
1279+
def connectSignals(self):
1280+
super().connectSignals()
12521281
def _update(state):
12531282
self.hal_pin.set(state)
12541283

0 commit comments

Comments
 (0)