From: cfalcon <cf...@ce...> - 2016-07-07 06:37:26
|
Taurus4 is not back-comp in the connection of old-style signals. Since Taurus 4 is not force to use PyQT API2 yet, a back-comp layer should be offered to be compatible with non adapted external applications. Try to do the connection with old-style way as fall-back option. --- lib/taurus/qt/qtcore/communication/communication.py | 7 ++++++- lib/taurus/qt/qtgui/compact/abstractswitcher.py | 10 +++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/taurus/qt/qtcore/communication/communication.py b/lib/taurus/qt/qtcore/communication/communication.py index 6678bc1..1707242 100644 --- a/lib/taurus/qt/qtcore/communication/communication.py +++ b/lib/taurus/qt/qtcore/communication/communication.py @@ -114,6 +114,7 @@ class DataModel(QtCore.QObject): .. seealso:: :meth:`connectWriter`, :meth:`getData` ''' self.dataChanged.connect(slot) + if readOnConnect and self.__isDataSet: slot(self.__data) obj = getattr(slot, '__self__', slot) @@ -131,7 +132,11 @@ class DataModel(QtCore.QObject): .. seealso:: :meth:`connectReader`, :meth:`setData` ''' - get_signal(writer, signalname).connect(self.setData) + try: + get_signal(writer, signalname).connect(self.setData) + except AttributeError: + # support old-style signal + self.connect(writer, QtCore.SIGNAL(signalname), self.setData) self.__writerSignals.append((weakref.ref(writer), signalname)) def disconnectWriter(self, writer, signalname): diff --git a/lib/taurus/qt/qtgui/compact/abstractswitcher.py b/lib/taurus/qt/qtgui/compact/abstractswitcher.py index f5c2156..bf91eb8 100644 --- a/lib/taurus/qt/qtgui/compact/abstractswitcher.py +++ b/lib/taurus/qt/qtgui/compact/abstractswitcher.py @@ -221,7 +221,15 @@ class TaurusReadWriteSwitcher(TaurusWidget): try: getattr(self.writeWidget, sig).connect(self.exitEdit) except Exception, e: - self.debug('Cannot connect signal. Reason: %s', e) + if isinstance(e, AttributeError) and hasattr(Qt, "SIGNAL"): + # Support old-style signal + self.connect(self.writeWidget, Qt.SIGNAL(sig), + self.exitEdit) + self.debug('Cannot connect %s using new style signal.' + + 'Falling back to old style', sig) + else: + self.debug('Cannot connect signal. Reason: %s', e) + # update size policy self._updateSizePolicy() # register configuration (we use the class name to avoid mixing configs -- 2.4.0 |