Code Duplication    Length = 17-22 lines in 2 locations

uaclient/mainwindow.py 2 locations

@@ 107-128 (lines=22) @@
104
        node = self.window.get_current_node()
105
        if node is None:
106
            return
107
        self._subscribed_nodes.remove(node)
108
        self.uaclient.unsubscribe_events(node)
109
110
    @trycatchslot
111
    def _update_event_model(self, event):
112
        self.model.appendRow([QStandardItem(str(event))])
113
114
115
class DataChangeUI(object):
116
117
    def __init__(self, window, uaclient):
118
        self.window = window
119
        self.uaclient = uaclient
120
        self._subhandler = DataChangeHandler()
121
        self._subscribed_nodes = []
122
        self.model = QStandardItemModel()
123
        self.window.ui.subView.setModel(self.model)
124
        self.window.ui.subView.horizontalHeader().setSectionResizeMode(1)
125
126
        self.window.ui.actionSubscribeDataChange.triggered.connect(self._subscribe)
127
        self.window.ui.actionUnsubscribeDataChange.triggered.connect(self._unsubscribe)
128
129
        # populate contextual menu
130
        self.window.ui.treeView.addAction(self.window.ui.actionSubscribeDataChange)
131
        self.window.ui.treeView.addAction(self.window.ui.actionUnsubscribeDataChange)
@@ 43-59 (lines=17) @@
40
class EventHandler(QObject):
41
    event_fired = pyqtSignal(object)
42
43
    def event_notification(self, event):
44
        self.event_fired.emit(event)
45
46
47
class EventUI(object):
48
49
    def __init__(self, window, uaclient):
50
        self.window = window
51
        self.uaclient = uaclient
52
        self._handler = EventHandler()
53
        self._subscribed_nodes = []  # FIXME: not really needed
54
        self.model = QStandardItemModel()
55
        self.window.ui.evView.setModel(self.model)
56
        self.window.ui.actionSubscribeEvent.triggered.connect(self._subscribe)
57
        self.window.ui.actionUnsubscribeEvents.triggered.connect(self._unsubscribe)
58
        # context menu
59
        self.window.ui.treeView.addAction(self.window.ui.actionSubscribeEvent)
60
        self.window.ui.treeView.addAction(self.window.ui.actionUnsubscribeEvents)
61
        self._handler.event_fired.connect(self._update_event_model, type=Qt.QueuedConnection)
62