예제 #1
0
    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))
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
    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()"))
예제 #5
0
    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
예제 #6
0
    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)
예제 #9
0
    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()"))
예제 #10
0
    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 = []
예제 #11
0
    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()"))
예제 #12
0
    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 = []
예제 #13
0
    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()"))
예제 #14
0
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)
예제 #15
0
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)
예제 #16
0
 def insert(self, i, mobject):
     self.beginInsertRows(QModelIndex(),i, i)
     self.m_objects.append(mobject)
     self.endInsertRows()
     QObject.emit(self, SIGNAL("countChanged()"))
예제 #17
0
 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()"))