SignalProxy *p = signalProxy();
connect(p, SIGNAL(peerRemoved(QIODevice *)), this, SLOT(removeClient(QIODevice *)));
-
+
//p->attachSlot(SIGNAL(disconnectFromNetwork(NetworkId)), this, SLOT(disconnectFromNetwork(NetworkId))); // FIXME
p->attachSlot(SIGNAL(sendInput(BufferInfo, QString)), this, SLOT(msgFromClient(BufferInfo, QString)));
p->attachSignal(this, SIGNAL(displayMsg(Message)));
p->attachSignal(this, SIGNAL(identityCreated(const Identity &)));
p->attachSignal(this, SIGNAL(identityRemoved(IdentityId)));
p->attachSlot(SIGNAL(createIdentity(const Identity &)), this, SLOT(createIdentity(const Identity &)));
- p->attachSlot(SIGNAL(updateIdentity(const Identity &)), this, SLOT(updateIdentity(const Identity &)));
p->attachSlot(SIGNAL(removeIdentity(IdentityId)), this, SLOT(removeIdentity(IdentityId)));
p->attachSignal(this, SIGNAL(networkCreated(NetworkId)));
p->attachSignal(this, SIGNAL(networkRemoved(NetworkId)));
p->attachSlot(SIGNAL(createNetwork(const NetworkInfo &)), this, SLOT(createNetwork(const NetworkInfo &)));
- p->attachSlot(SIGNAL(updateNetwork(const NetworkInfo &)), this, SLOT(updateNetwork(const NetworkInfo &)));
p->attachSlot(SIGNAL(removeNetwork(NetworkId)), this, SLOT(removeNetwork(NetworkId)));
loadSettings();
QHash<BufferId, MsgId> lastSeenHash = Core::bufferLastSeenMsgIds(user());
foreach(BufferId id, lastSeenHash.keys())
_bufferSyncer->requestSetLastSeenMsg(id, lastSeenHash[id]);
-
+
connect(_bufferSyncer, SIGNAL(lastSeenMsgSet(BufferId, MsgId)), this, SLOT(storeBufferLastSeenMsg(BufferId, MsgId)));
connect(_bufferSyncer, SIGNAL(removeBufferRequested(BufferId)), this, SLOT(removeBufferRequested(BufferId)));
connect(this, SIGNAL(bufferRemoved(BufferId)), _bufferSyncer, SLOT(removeBuffer(BufferId)));
// init alias manager
p->synchronize(&aliasManager());
-
+
// init BacklogManager
p->synchronize(_backlogManager);
// init IrcListHelper
p->synchronize(ircListHelper());
-
+
// init CoreInfo
p->synchronize(&_coreInfo);
-
+
// Restore session state
if(restoreState) restoreSessionState();
delete i;
continue;
}
+ connect(i, SIGNAL(updated(const QVariantMap &)), this, SLOT(identityUpdated(const QVariantMap &)));
_identities[i->id()] = i;
signalProxy()->synchronize(i);
}
void CoreSession::connectToNetwork(NetworkId id) {
CoreNetwork *net = network(id);
if(!net) {
- quWarning() << "Connect to unknown network requested! net: " << id << " user: " << user();
+ quWarning() << "Connect to unknown network requested! net:" << id << "user:" << user();
return;
}
void CoreSession::disconnectFromNetwork(NetworkId id) {
if(!_connections.contains(id))
return;
-
+
//_connections[id]->disconnectFromIrc();
_connections[id]->userInputHandler()->handleQuit(BufferInfo(), QString());
}
// no checks for validity check - privateslot...
QTcpSocket *socket = qobject_cast<QTcpSocket *>(iodev);
if(socket)
- quInfo() << qPrintable(tr("Client ")) << qPrintable(socket->peerAddress().toString()) << qPrintable(tr(" disconnected (UserId: %1).").arg(user().toInt()));
+ quInfo() << qPrintable(tr("Client")) << qPrintable(socket->peerAddress().toString()) << qPrintable(tr("disconnected (UserId: %1).").arg(user().toInt()));
else
quInfo() << "Local client disconnedted.";
disconnect(socket, 0, this, 0);
signalProxy()->synchronize(newId);
CoreUserSettings s(user());
s.storeIdentity(*newId);
+ connect(newId, SIGNAL(updated(const QVariantMap &)), this, SLOT(identityUpdated(const QVariantMap &)));
emit identityCreated(*newId);
}
-void CoreSession::updateIdentity(const Identity &id) {
- if(!_identities.contains(id.id())) {
- quWarning() << "Update request for unknown identity received!";
- return;
- }
- _identities[id.id()]->update(id);
-
- CoreUserSettings s(user());
- s.storeIdentity(id);
-}
-
void CoreSession::removeIdentity(IdentityId id) {
Identity *i = _identities.take(id);
if(i) {
}
}
+void CoreSession::identityUpdated(const QVariantMap &data) {
+ IdentityId id = data.value("identityId", 0).value<IdentityId>();
+ if(!id.isValid() || !_identities.contains(id)) {
+ quWarning() << "Update request for unknown identity received!";
+ return;
+ }
+ CoreUserSettings s(user());
+ s.storeIdentity(*_identities.value(id));
+}
+
/*** Network Handling ***/
void CoreSession::createNetwork(const NetworkInfo &info_) {
emit networkCreated(id);
} else {
quWarning() << qPrintable(tr("CoreSession::createNetwork(): Trying to create a network that already exists, updating instead!"));
- updateNetwork(info);
+ _networks[info.networkId]->requestSetNetworkInfo(info);
}
}
-// FIXME: move to CoreNetwork
-void CoreSession::updateNetwork(const NetworkInfo &info) {
- if(!_networks.contains(info.networkId)) {
- quWarning() << "Update request for unknown network received!";
- return;
- }
- _networks[info.networkId]->setNetworkInfo(info);
- Core::updateNetwork(user(), info);
-}
-
void CoreSession::removeNetwork(NetworkId id) {
// Make sure the network is disconnected!
NetworkConnection *conn = _connections.value(id, 0);
void CoreSession::removeBufferRequested(BufferId bufferId) {
BufferInfo bufferInfo = Core::getBufferInfo(user(), bufferId);
if(!bufferInfo.isValid()) {
- quWarning() << "CoreSession::removeBufferRequested(): invalid BufferId: " << bufferId << " for User: " << user();
+ quWarning() << "CoreSession::removeBufferRequested(): invalid BufferId:" << bufferId << "for User:" << user();
return;
}
-
+
if(bufferInfo.type() == BufferInfo::StatusBuffer) {
quWarning() << "CoreSession::removeBufferRequested(): Status Buffers cannot be removed!";
return;
}
-
+
if(bufferInfo.type() == BufferInfo::ChannelBuffer) {
CoreNetwork *net = network(bufferInfo.networkId());
if(!net) {
}
IrcChannel *chan = net->ircChannel(bufferInfo.bufferName());
if(chan) {
- quWarning() << "CoreSession::removeBufferRequested(): Unable to remove Buffer for joined Channel: " << bufferInfo.bufferName();
+ quWarning() << "CoreSession::removeBufferRequested(): Unable to remove Buffer for joined Channel:" << bufferInfo.bufferName();
return;
}
}