#include "network.h"
#include "networkmodel.h"
#include "buffermodel.h"
-#include "nickmodel.h"
#include "quasselui.h"
#include "signalproxy.h"
#include "util.h"
mainUi(0),
_networkModel(0),
_bufferModel(0),
- _nickModel(0),
_connectedToCore(false),
_syncedToCore(false)
{
+ _monitorBuffer = new Buffer(BufferInfo(), this);
}
Client::~Client() {
_networkModel, SLOT(bufferUpdated(BufferInfo)));
_bufferModel = new BufferModel(_networkModel);
- _nickModel = new NickModel(_networkModel);
SignalProxy *p = signalProxy();
p->attachSignal(this, SIGNAL(sendSessionData(const QString &, const QVariant &)),
p->attachSignal(this, SIGNAL(requestCreateNetwork(const NetworkInfo &)), SIGNAL(createNetwork(const NetworkInfo &)));
p->attachSignal(this, SIGNAL(requestUpdateNetwork(const NetworkInfo &)), SIGNAL(updateNetwork(const NetworkInfo &)));
p->attachSignal(this, SIGNAL(requestRemoveNetwork(NetworkId)), SIGNAL(removeNetwork(NetworkId)));
- p->attachSlot(SIGNAL(networkCreated(const NetworkInfo &)), this, SLOT(coreNetworkCreated(const NetworkInfo &)));
+ p->attachSlot(SIGNAL(networkCreated(NetworkId)), this, SLOT(coreNetworkCreated(NetworkId)));
p->attachSlot(SIGNAL(networkRemoved(NetworkId)), this, SLOT(coreNetworkRemoved(NetworkId)));
connect(p, SIGNAL(disconnected()), this, SLOT(disconnectFromCore()));
return buff;
}
+Buffer *Client::monitorBuffer() {
+ return instance()->_monitorBuffer;
+}
+
NetworkModel *Client::networkModel() {
return instance()->_networkModel;
return instance()->_bufferModel;
}
-NickModel *Client::nickModel() {
- return instance()->_nickModel;
-}
-
-
SignalProxy *Client::signalProxy() {
return instance()->_signalProxy;
}
else return 0;
}
+/*
+void Client::networkConnected(uint netid) {
+ // TODO: create statusBuffer / switch to networkids
+ //BufferInfo id = statusBufferInfo(net);
+ //Buffer *b = buffer(id);
+ //b->setActive(true);
+
+ Network *netinfo = new Network(netid, this);
+ netinfo->setProxy(signalProxy());
+ networkModel()->attachNetwork(netinfo);
+ connect(netinfo, SIGNAL(destroyed()), this, SLOT(networkDestroyed()));
+ _networks[netid] = netinfo;
+}
+
+void Client::networkDisconnected(NetworkId networkid) {
+ if(!_networks.contains(networkid)) {
+ qWarning() << "Client::networkDisconnected(uint): unknown Network" << networkid;
+ return;
+}
+
+ Network *net = _networks.take(networkid);
+ if(!net->isInitialized()) {
+ qDebug() << "Network" << networkid << "disconnected while not yet initialized!";
+ updateCoreConnectionProgress();
+}
+ net->deleteLater();
+}
+*/
+
+void Client::createNetwork(const NetworkInfo &info) {
+ emit instance()->requestCreateNetwork(info);
+}
+
+void Client::updateNetwork(const NetworkInfo &info) {
+ emit instance()->requestUpdateNetwork(info);
+}
+
+void Client::removeNetwork(NetworkId id) {
+ emit instance()->requestRemoveNetwork(id);
+}
+
+void Client::addNetwork(Network *net) {
+ net->setProxy(signalProxy());
+ signalProxy()->synchronize(net);
+ networkModel()->attachNetwork(net);
+ connect(net, SIGNAL(destroyed()), instance(), SLOT(networkDestroyed()));
+ instance()->_networks[net->networkId()] = net;
+ emit instance()->networkCreated(net->networkId());
+}
+
+void Client::coreNetworkCreated(NetworkId id) {
+ if(_networks.contains(id)) {
+ qWarning() << "Creation of already existing network requested!";
+ return;
+ }
+ Network *net = new Network(id, this);
+ addNetwork(net);
+}
+
+void Client::coreNetworkRemoved(NetworkId id) {
+ if(!_networks.contains(id)) return;
+ Network *net = _networks.take(id);
+ emit networkRemoved(net->networkId());
+ net->deleteLater();
+}
+
/*** Identity handling ***/
QList<IdentityId> Client::identityIds() {
/*** ***/
-// FIXME
-void Client::disconnectFromNetwork(NetworkId id) {
- if(!instance()->_networks.contains(id)) return;
- Network *net = instance()->_networks[id];
- net->requestDisconnect();
-}
-
-/*
-void Client::networkConnected(uint netid) {
- // TODO: create statusBuffer / switch to networkids
- //BufferInfo id = statusBufferInfo(net);
- //Buffer *b = buffer(id);
- //b->setActive(true);
-
- Network *netinfo = new Network(netid, this);
- netinfo->setProxy(signalProxy());
- networkModel()->attachNetwork(netinfo);
- connect(netinfo, SIGNAL(destroyed()), this, SLOT(networkDestroyed()));
- _networks[netid] = netinfo;
-}
-
-void Client::networkDisconnected(NetworkId networkid) {
- if(!_networks.contains(networkid)) {
- qWarning() << "Client::networkDisconnected(uint): unknown Network" << networkid;
- return;
- }
-
- Network *net = _networks.take(networkid);
- if(!net->isInitialized()) {
- qDebug() << "Network" << networkid << "disconnected while not yet initialized!";
- updateCoreConnectionProgress();
- }
- net->deleteLater();
-}
-*/
-
-void Client::addNetwork(Network *net) {
- net->setProxy(signalProxy());
- signalProxy()->synchronize(net);
- networkModel()->attachNetwork(net);
- connect(net, SIGNAL(destroyed()), instance(), SLOT(networkDestroyed()));
- instance()->_networks[net->networkId()] = net;
- emit instance()->networkCreated(net->networkId());
-}
-
-void Client::createNetwork(const NetworkInfo &info) {
-
-
-}
/*** ***/
Buffer *b = buffer(msg.buffer());
b->appendMsg(msg);
networkModel()->updateBufferActivity(msg);
+
+ if(msg.type() == Message::Plain || msg.type() == Message::Notice || msg.type() == Message::Action) {
+ QString sender = msg.buffer().network() + ":" + msg.buffer().buffer() + ":" + msg.sender();
+ Message mmsg = Message(msg.timestamp(), msg.buffer(), msg.type(), msg.text(), sender, msg.flags());
+ monitorBuffer()->appendMsg(mmsg);
+ }
+
}
void Client::recvStatusMsg(QString /*net*/, QString /*msg*/) {