def replace(self, i, mobject): # m_objects.replace(i, object); # emit dataChanged(index(i), index(i)); self.m_objects[i]=mobject QObject.emit(self, SIGNAL("dataChanged(const QModelIndex&, const QModelIndex &)"), self.index(i), self.index(i))
def testIt(self): global called called = False o = QObject() o.connect(o, SIGNAL("ASignal()"), functools.partial(someSlot, "partial ..")) o.emit(SIGNAL("ASignal()")) self.assertTrue(called)
def testIt(self): global called called = False o = QObject() o.connect(o, SIGNAL("ASignal"), functools.partial(someSlot, "partial ..")) o.emit(SIGNAL("ASignal")) self.assertTrue(called)
def append(self, mobject): # beginInsertRows(QModelIndex(), m_objects.count(), m_objects.count()); # m_objects.append(object); # endInsertRows(); # emit countChanged(); self.beginInsertRows(QModelIndex(), len(self.m_objects), len(self.m_objects)) self.m_objects.append(mobject) self.endInsertRows() QObject.emit(self, SIGNAL("countChanged()"))
def takeAt(self,i): # beginRemoveRows(QModelIndex(), i, i); # QObject *obj = m_objects.takeAt(i); # endRemoveRows(); # emit countChanged(); # return obj; self.beginRemoveRows(QModelIndex(), i, i) obj = self.m_objects.pop(i) self.endRemoveRows() QObject.emit(self, SIGNAL("countChanged()")) return obj
def removeAt(self,i, count): # beginRemoveRows(QModelIndex(), i, i + count - 1); # for (int j = 0; j < count; ++j) # m_objects.removeAt(i); # endRemoveRows(); # emit countChanged(); self.beginRemoveRows(QModelIndex(), i, i + count - 1) for j in range(count): self.m_objects.pop(i) self.endRemoveRows() QObject.emit(self, SIGNAL("countChanged()"))
def testSharedSignalEmission(self): o = QObject() m = MyObject() o.connect(SIGNAL("foo2()"), m.mySlot) m.connect(SIGNAL("foo2()"), m.mySlot) o.emit(SIGNAL("foo2()")) self.assertEqual(m._slotCalledCount, 1) del o m.emit(SIGNAL("foo2()")) self.assertEqual(m._slotCalledCount, 2)
def testSharedSignalEmission(self): o = QObject() m = MyObject() o.connect(SIGNAL("foo2()"), m.mySlot) m.connect(SIGNAL("foo2()"), m.mySlot) o.emit(SIGNAL("foo2()")) self.assertEqual(m._slotCalledCount, 1) del o m.emit(SIGNAL("foo2()")) self.assertEqual(m._slotCalledCount, 2)
def clear(self): # if (m_objects.isEmpty()) # return; # # beginRemoveRows(QModelIndex(), 0, m_objects.count() - 1); # m_objects.clear(); # endRemoveRows(); # emit countChanged(); if self.m_objects != []: self.beginRemoveRows(QModelIndex(), 0, self.m_objects__len__() - 1) self.m_objects.clear() self.endRemoveRows() QObject.emit(self, SIGNAL("countChanged()"))
def testDisconnectCleanup(self): for c in range(MAX_LOOPS): self._count = 0 self._senders = [] for i in range(MAX_OBJECTS): o = QObject() QObject.connect(o, SIGNAL("fire()"), lambda: self.myCB()) self._senders.append(o) o.emit(SIGNAL("fire()")) self.assertEqual(self._count, MAX_OBJECTS) #delete all senders will disconnect the signals self._senders = []
def insert_objects(self, i, objects): # if (objects.isEmpty()) # return; # # beginInsertRows(QModelIndex(), i, i+objects.count()-1); # for (int j = objects.count() - 1; j > -1; --j) # m_objects.insert(i, objects.at(j)); # endInsertRows(); # emit countChanged(); if len(objects)>0: self.beginInsertRows(QModelIndex(),i, i+len(self.objects)-1) self.m_objects[i:i] = objects self.endInsertRows() QObject.emit(self, SIGNAL("countChanged()"))
def testDisconnectCleanup(self): for c in range(MAX_LOOPS): self._count = 0 self._senders = [] for i in range(MAX_OBJECTS): o = QObject() QObject.connect(o, SIGNAL("fire()"), lambda: self.myCB()) self._senders.append(o) o.emit(SIGNAL("fire()")) self.assertEqual(self._count, MAX_OBJECTS) #delete all senders will disconnect the signals self._senders = []
def setObjectList(self, objects): # int oldCount = m_objects.count(); # beginResetModel(); # m_objects = objects; # endResetModel(); # emit dataChanged(index(0), index(m_objects.count())); # if (m_objects.count() != oldCount) # emit countChanged(); oldCount = len(self.m_objects) self.beginResetModel() self.m_objects = objects self.endResetModel() QObject.emit(self, SIGNAL("dataChanged(const QModelIndex&, const QModelIndex &)"), self.index(0), self.index(len(self.m_objects))) if(len(self.m_objects) != oldCount): QObject.emit(self, SIGNAL("countChanged()"))
class TestSignalsBlocked(unittest.TestCase): '''Test case to check if the signals are really blocked''' def setUp(self): #Set up the basic resources needed self.obj = QObject() self.args = tuple() self.called = False def tearDown(self): #Delete used resources del self.obj del self.args def callback(self, *args): #Default callback if args == self.args: self.called = True else: raise TypeError("Invalid arguments") def testShortCircuitSignals(self): #Blocking of Python short-circuit signals QObject.connect(self.obj, SIGNAL('mysignal'), self.callback) self.obj.emit(SIGNAL('mysignal')) self.assert_(self.called) self.called = False self.obj.blockSignals(True) self.obj.emit(SIGNAL('mysignal')) self.assert_(not self.called) def testPythonSignals(self): #Blocking of Python typed signals QObject.connect(self.obj, SIGNAL('mysignal(int,int)'), self.callback) self.args = (1, 3) self.obj.emit(SIGNAL('mysignal(int,int)'), *self.args) self.assert_(self.called) self.called = False self.obj.blockSignals(True) self.obj.emit(SIGNAL('mysignal(int,int)'), *self.args) self.assert_(not self.called)
class TestSignalsBlocked(unittest.TestCase): '''Test case to check if the signals are really blocked''' def setUp(self): #Set up the basic resources needed self.obj = QObject() self.args = tuple() self.called = False def tearDown(self): #Delete used resources del self.obj del self.args def callback(self, *args): #Default callback if args == self.args: self.called = True else: raise TypeError("Invalid arguments") def testShortCircuitSignals(self): #Blocking of Python short-circuit signals QObject.connect(self.obj, SIGNAL('mysignal'), self.callback) self.obj.emit(SIGNAL('mysignal')) self.assert_(self.called) self.called = False self.obj.blockSignals(True) self.obj.emit(SIGNAL('mysignal')) self.assert_(not self.called) def testPythonSignals(self): #Blocking of Python typed signals QObject.connect(self.obj, SIGNAL('mysignal(int,int)'), self.callback) self.args = (1, 3) self.obj.emit(SIGNAL('mysignal(int,int)'), *self.args) self.assert_(self.called) self.called = False self.obj.blockSignals(True) self.obj.emit(SIGNAL('mysignal(int,int)'), *self.args) self.assert_(not self.called)
def insert(self, i, mobject): self.beginInsertRows(QModelIndex(),i, i) self.m_objects.append(mobject) self.endInsertRows() QObject.emit(self, SIGNAL("countChanged()"))
def append_objects(self, objects): self.beginInsertRows(QModelIndex(), len(self.m_objects), len(self.m_objects)+len(self.objects)-1) self.m_objects = self.m_objects + objects self.endInsertRows() QObject.emit(self, SIGNAL("countChanged()"))