X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fsignalproxy.cpp;h=76fccb73eb7013865015f9a5b0d5d3b6e2f2468a;hb=9d02d714ff6ddfdd4a81fbe33d829c845d1fd4b8;hp=f467b1b5fbc66ed6681e428514db52a0653b5af6;hpb=018d1d001bf3c051b55525f523d933a8d694e071;p=quassel.git diff --git a/src/common/signalproxy.cpp b/src/common/signalproxy.cpp index f467b1b5..76fccb73 100644 --- a/src/common/signalproxy.cpp +++ b/src/common/signalproxy.cpp @@ -606,23 +606,27 @@ void SignalProxy::synchronize(SyncableObject *obj) { if(proxyMode() == Server) { connect(obj, SIGNAL(objectRenamed(QString, QString)), this, SLOT(objectRenamed(QString, QString))); - setInitialized(obj); + obj->setInitialized(); + emit objectInitialized(obj); } else { - requestInit(obj); + if(obj->isInitialized()) + emit objectInitialized(obj); + else + requestInit(obj); } } -void SignalProxy::setInitialized(SyncableObject *obj) { - obj->setInitialized(); - emit objectInitialized(obj); -} +// void SignalProxy::setInitialized(SyncableObject *obj) { +// obj->setInitialized(); +// emit objectInitialized(obj); +// } -bool SignalProxy::isInitialized(SyncableObject *obj) const { - return obj->isInitialized(); -} +// bool SignalProxy::isInitialized(SyncableObject *obj) const { +// return obj->isInitialized(); +// } void SignalProxy::requestInit(SyncableObject *obj) { - if(proxyMode() == Server || isInitialized(obj)) + if(proxyMode() == Server || obj->isInitialized()) return; QVariantList params; @@ -914,7 +918,8 @@ void SignalProxy::writeDataToDevice(QIODevice *dev, const QVariant &item, bool c QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_2); - + out << (quint32)0; + if(compressed) { QByteArray rawItem; QDataStream itemStream(&rawItem, QIODevice::WriteOnly); @@ -924,13 +929,14 @@ void SignalProxy::writeDataToDevice(QIODevice *dev, const QVariant &item, bool c rawItem = qCompress(rawItem); - out << (quint32)rawItem.size() << rawItem; + out << rawItem; } else { - out << (quint32)0 << item; - out.device()->seek(0); - out << (quint32)(block.size() - sizeof(quint32)); + out << item; } + out.device()->seek(0); + out << (quint32)(block.size() - sizeof(quint32)); + dev->write(block); } @@ -950,7 +956,7 @@ bool SignalProxy::readDataFromDevice(QIODevice *dev, quint32 &blockSize, QVarian QByteArray rawItem; in >> rawItem; rawItem = qUncompress(rawItem); - + QDataStream itemStream(&rawItem, QIODevice::ReadOnly); itemStream.setVersion(QDataStream::Qt_4_2); itemStream >> item; @@ -1010,10 +1016,11 @@ QVariantMap SignalProxy::initData(SyncableObject *obj) const { } void SignalProxy::setInitData(SyncableObject *obj, const QVariantMap &properties) { - if(isInitialized(obj)) + if(obj->isInitialized()) return; obj->fromVariantMap(properties); - setInitialized(obj); + obj->setInitialized(); + emit objectInitialized(obj); invokeSlot(obj, updatedRemotelyId(obj)); }