/***************************************************************************
- * Copyright (C) 2005-07 by the Quassel IRC Team *
+ * Copyright (C) 2005-08 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "networkmodel.h"
-#include "mappedselectionmodel.h"
#include <QAbstractItemView>
#include "bufferinfo.h"
#include "client.h"
#include "signalproxy.h"
-#include "networkinfo.h"
+#include "network.h"
#include "ircchannel.h"
#include "ircuser.h"
}
void BufferItem::join(IrcUser *ircUser) {
-// emit newChild(new IrcUserItem(ircUser, this));
-// emit dataChanged(2);
+ emit newChild(new IrcUserItem(ircUser, this));
+ emit dataChanged(2);
}
void BufferItem::part(IrcUser *ircUser) {
}
QString NetworkItem::networkName() const {
- if(_networkInfo)
- return _networkInfo->networkName();
+ if(_network)
+ return _network->networkName();
else
return _networkName;
}
QString NetworkItem::currentServer() const {
- if(_networkInfo)
- return _networkInfo->currentServer();
+ if(_network)
+ return _network->currentServer();
else
return QString();
}
return count;
}
-void NetworkItem::attachNetworkInfo(NetworkInfo *networkInfo) {
- if(!networkInfo)
+void NetworkItem::attachNetwork(Network *network) {
+ if(!network)
return;
- _networkInfo = networkInfo;
+ _network = network;
- connect(networkInfo, SIGNAL(networkNameSet(QString)),
+ connect(network, SIGNAL(networkNameSet(QString)),
this, SLOT(setNetworkName(QString)));
- connect(networkInfo, SIGNAL(currentServerSet(QString)),
+ connect(network, SIGNAL(currentServerSet(QString)),
this, SLOT(setCurrentServer(QString)));
- connect(networkInfo, SIGNAL(ircChannelAdded(QString)),
+ connect(network, SIGNAL(ircChannelAdded(QString)),
this, SLOT(attachIrcChannel(QString)));
// FIXME: connect this and that...
}
void NetworkItem::attachIrcChannel(const QString &channelName) {
- IrcChannel *ircChannel = _networkInfo->ircChannel(channelName);
+ IrcChannel *ircChannel = _network->ircChannel(channelName);
if(!ircChannel) {
qWarning() << "NetworkItem::attachIrcChannel(): unkown Channel" << channelName;
return;
* NetworkModel
*****************************************/
NetworkModel::NetworkModel(QObject *parent)
- : TreeModel(NetworkModel::defaultHeader(), parent),
- _selectionModelSynchronizer(new SelectionModelSynchronizer(this)),
- _propertyMapper(new ModelPropertyMapper(this))
+ : TreeModel(NetworkModel::defaultHeader(), parent)
{
- // initialize the Property Mapper
- _propertyMapper->setModel(this);
- delete _propertyMapper->selectionModel();
- MappedSelectionModel *mappedSelectionModel = new MappedSelectionModel(this);
- _propertyMapper->setSelectionModel(mappedSelectionModel);
- synchronizeSelectionModel(mappedSelectionModel);
-
- connect(_selectionModelSynchronizer, SIGNAL(setCurrentIndex(QModelIndex, QItemSelectionModel::SelectionFlags)),
- this, SLOT(setCurrentIndex(QModelIndex, QItemSelectionModel::SelectionFlags)));
}
QList<QVariant >NetworkModel::defaultHeader() {
return data;
}
-void NetworkModel::synchronizeSelectionModel(MappedSelectionModel *selectionModel) {
- selectionModelSynchronizer()->addSelectionModel(selectionModel);
-}
-
-void NetworkModel::synchronizeView(QAbstractItemView *view) {
- MappedSelectionModel *mappedSelectionModel = new MappedSelectionModel(view->model());
- selectionModelSynchronizer()->addSelectionModel(mappedSelectionModel);
- Q_ASSERT(mappedSelectionModel);
- delete view->selectionModel();
- view->setSelectionModel(mappedSelectionModel);
-}
-
-void NetworkModel::mapProperty(int column, int role, QObject *target, const QByteArray &property) {
- propertyMapper()->addMapping(column, role, target, property);
-}
-
bool NetworkModel::isBufferIndex(const QModelIndex &index) const {
return index.data(NetworkModel::ItemTypeRole) == NetworkModel::BufferItemType;
}
return true;
}
-void NetworkModel::attachNetworkInfo(NetworkInfo *networkInfo) {
- NetworkItem *networkItem = network(networkInfo->networkId());
+void NetworkModel::attachNetwork(Network *net) {
+ NetworkItem *networkItem = network(net->networkId());
if(!networkItem) {
- qWarning() << "NetworkModel::attachNetworkInfo(): network is unknown!";
+ qWarning() << "NetworkModel::attachNetwork(): network is unknown!";
return;
}
- networkItem->attachNetworkInfo(networkInfo);
+ networkItem->attachNetwork(net);
}
void NetworkModel::bufferUpdated(Buffer *buffer) {
emit dataChanged(itemindex, itemindex);
}
-// This Slot indicates that the user has selected a different buffer in the gui
-void NetworkModel::setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command) {
- Q_UNUSED(command)
- Buffer *newCurrentBuffer;
- if(isBufferIndex(index) && currentBuffer != (newCurrentBuffer = getBufferByIndex(index))) {
- currentBuffer = newCurrentBuffer;
- bufferActivity(Buffer::NoActivity, currentBuffer);
- emit bufferSelected(currentBuffer);
- emit selectionChanged(index);
- }
-}
-
void NetworkModel::bufferActivity(Buffer::ActivityLevel level, Buffer *buf) {
BufferItem *bufferItem = buffer(buf->bufferInfo());
if(!bufferItem) {
qWarning() << "NetworkModel::bufferActivity(): received Activity Info for uknown Buffer";
return;
}
-
- if(buf != currentBuffer)
- bufferItem->setActivity(level);
- else
- bufferItem->setActivity(Buffer::NoActivity);
+ bufferItem->setActivity(level);
bufferUpdated(buf);
}
-void NetworkModel::selectBuffer(Buffer *buffer) {
- QModelIndex index = bufferIndex(buffer->bufferInfo());
- if(!index.isValid()) {
- qWarning() << "NetworkModel::selectBuffer(): unknown Buffer has been selected.";
- return;
- }
- // SUPER UGLY!
- setCurrentIndex(index, 0);
-}