From cb6520b432302dc6579a8e99cb9cd249a6effb9d Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Thu, 10 Jul 2008 13:56:02 +0200 Subject: [PATCH] internal restructuring --- src/client/networkmodel.cpp | 226 ++++++++++++++++++------------------ src/client/networkmodel.h | 75 ++++++------ 2 files changed, 150 insertions(+), 151 deletions(-) diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 5e1bc911..385e1bd9 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -32,6 +32,119 @@ #include "util.h" // get rid of this (needed for isChannelName) +/***************************************** +* Network Items +*****************************************/ +NetworkItem::NetworkItem(const NetworkId &netid, AbstractTreeItem *parent) + : PropertyMapItem(QList() << "networkName" << "currentServer" << "nickCount", parent), + _networkId(netid) +{ + setFlags(Qt::ItemIsEnabled); +} + +QVariant NetworkItem::data(int column, int role) const { + switch(role) { + case NetworkModel::NetworkIdRole: + return qVariantFromValue(_networkId); + case NetworkModel::ItemTypeRole: + return NetworkModel::NetworkItemType; + case NetworkModel::ItemActiveRole: + return isActive(); + default: + return PropertyMapItem::data(column, role); + } +} + +quint64 NetworkItem::id() const { + return qHash(_networkId); +} + +bool NetworkItem::isActive() const { + if(_network) + return _network->isConnected(); + else + return false; +} + +QString NetworkItem::networkName() const { + if(_network) + return _network->networkName(); + else + return QString(); +} + +QString NetworkItem::currentServer() const { + if(_network) + return _network->currentServer(); + else + return QString(); +} + +int NetworkItem::nickCount() const { + if(_network) + return _network->ircUsers().count(); + else + return 0; +} + +void NetworkItem::attachNetwork(Network *network) { + if(!network) + return; + + _network = network; + + connect(network, SIGNAL(networkNameSet(QString)), + this, SLOT(setNetworkName(QString))); + connect(network, SIGNAL(currentServerSet(QString)), + this, SLOT(setCurrentServer(QString))); + connect(network, SIGNAL(ircChannelAdded(QString)), + this, SLOT(attachIrcChannel(QString))); + connect(network, SIGNAL(connectedSet(bool)), + this, SIGNAL(dataChanged())); + connect(network, SIGNAL(destroyed()), + this, SIGNAL(dataChanged())); + + emit dataChanged(); +} + +void NetworkItem::attachIrcChannel(const QString &channelName) { + IrcChannel *ircChannel = _network->ircChannel(channelName); + if(!ircChannel) { + qWarning() << "NetworkItem::attachIrcChannel(): unkown Channel" << channelName; + return; + } + + BufferItem *bufferItem; + for(int i = 0; i < childCount(); i++) { + bufferItem = qobject_cast(child(i)); + if(bufferItem->bufferName().toLower() == ircChannel->name().toLower()) { + bufferItem->attachIrcChannel(ircChannel); + break; + } + } +} + +void NetworkItem::setNetworkName(const QString &networkName) { + Q_UNUSED(networkName); + emit dataChanged(0); +} + +void NetworkItem::setCurrentServer(const QString &serverName) { + Q_UNUSED(serverName); + emit dataChanged(1); +} + + +QString NetworkItem::toolTip(int column) const { + Q_UNUSED(column); + + QStringList toolTip(QString("%1").arg(networkName())); + toolTip.append(QString("Server: %1").arg(currentServer())); + toolTip.append(QString("Users: %1").arg(nickCount())); + + return QString("

%1

").arg(toolTip.join("
")); +} + /***************************************** * Fancy Buffer Items *****************************************/ @@ -363,119 +476,6 @@ QDateTime BufferItem::lastSeen() { } */ -/***************************************** -* Network Items -*****************************************/ -NetworkItem::NetworkItem(const NetworkId &netid, AbstractTreeItem *parent) - : PropertyMapItem(QList() << "networkName" << "currentServer" << "nickCount", parent), - _networkId(netid) -{ - setFlags(Qt::ItemIsEnabled); -} - -QVariant NetworkItem::data(int column, int role) const { - switch(role) { - case NetworkModel::NetworkIdRole: - return qVariantFromValue(_networkId); - case NetworkModel::ItemTypeRole: - return NetworkModel::NetworkItemType; - case NetworkModel::ItemActiveRole: - return isActive(); - default: - return PropertyMapItem::data(column, role); - } -} - -quint64 NetworkItem::id() const { - return qHash(_networkId); -} - -bool NetworkItem::isActive() const { - if(_network) - return _network->isConnected(); - else - return false; -} - -QString NetworkItem::networkName() const { - if(_network) - return _network->networkName(); - else - return QString(); -} - -QString NetworkItem::currentServer() const { - if(_network) - return _network->currentServer(); - else - return QString(); -} - -int NetworkItem::nickCount() const { - if(_network) - return _network->ircUsers().count(); - else - return 0; -} - -void NetworkItem::attachNetwork(Network *network) { - if(!network) - return; - - _network = network; - - connect(network, SIGNAL(networkNameSet(QString)), - this, SLOT(setNetworkName(QString))); - connect(network, SIGNAL(currentServerSet(QString)), - this, SLOT(setCurrentServer(QString))); - connect(network, SIGNAL(ircChannelAdded(QString)), - this, SLOT(attachIrcChannel(QString))); - connect(network, SIGNAL(connectedSet(bool)), - this, SIGNAL(dataChanged())); - connect(network, SIGNAL(destroyed()), - this, SIGNAL(dataChanged())); - - emit dataChanged(); -} - -void NetworkItem::attachIrcChannel(const QString &channelName) { - IrcChannel *ircChannel = _network->ircChannel(channelName); - if(!ircChannel) { - qWarning() << "NetworkItem::attachIrcChannel(): unkown Channel" << channelName; - return; - } - - BufferItem *bufferItem; - for(int i = 0; i < childCount(); i++) { - bufferItem = qobject_cast(child(i)); - if(bufferItem->bufferName().toLower() == ircChannel->name().toLower()) { - bufferItem->attachIrcChannel(ircChannel); - break; - } - } -} - -void NetworkItem::setNetworkName(const QString &networkName) { - Q_UNUSED(networkName); - emit dataChanged(0); -} - -void NetworkItem::setCurrentServer(const QString &serverName) { - Q_UNUSED(serverName); - emit dataChanged(1); -} - - -QString NetworkItem::toolTip(int column) const { - Q_UNUSED(column); - - QStringList toolTip(QString("%1").arg(networkName())); - toolTip.append(QString("Server: %1").arg(currentServer())); - toolTip.append(QString("Users: %1").arg(nickCount())); - - return QString("

%1

").arg(toolTip.join("
")); -} - /***************************************** * User Category Items (like @vh etc.) diff --git a/src/client/networkmodel.h b/src/client/networkmodel.h index 8dceb5a4..9359ad39 100644 --- a/src/client/networkmodel.h +++ b/src/client/networkmodel.h @@ -40,6 +40,43 @@ class QAbstractItemView; class Network; class IrcChannel; +/***************************************** + * Network Items + *****************************************/ +class NetworkItem : public PropertyMapItem { + Q_OBJECT + Q_PROPERTY(QString networkName READ networkName) + Q_PROPERTY(QString currentServer READ currentServer) + Q_PROPERTY(int nickCount READ nickCount) + +public: + NetworkItem(const NetworkId &netid, AbstractTreeItem *parent = 0); + + virtual quint64 id() const; + virtual QVariant data(int column, int row) const; + + bool isActive() const; + + inline const NetworkId &networkId() const { return _networkId; } + QString networkName() const; + QString currentServer() const; + int nickCount() const; + + virtual QString toolTip(int column) const; + +public slots: + void setNetworkName(const QString &networkName); + void setCurrentServer(const QString &serverName); + + void attachNetwork(Network *network); + void attachIrcChannel(const QString &channelName); + +private: + NetworkId _networkId; + + QPointer _network; +}; + /***************************************** * Fancy Buffer Items *****************************************/ @@ -103,44 +140,6 @@ private: IrcChannel *_ircChannel; }; - -/***************************************** - * Network Items - *****************************************/ -class NetworkItem : public PropertyMapItem { - Q_OBJECT - Q_PROPERTY(QString networkName READ networkName) - Q_PROPERTY(QString currentServer READ currentServer) - Q_PROPERTY(int nickCount READ nickCount) - -public: - NetworkItem(const NetworkId &netid, AbstractTreeItem *parent = 0); - - virtual quint64 id() const; - virtual QVariant data(int column, int row) const; - - bool isActive() const; - - inline const NetworkId &networkId() const { return _networkId; } - QString networkName() const; - QString currentServer() const; - int nickCount() const; - - virtual QString toolTip(int column) const; - -public slots: - void setNetworkName(const QString &networkName); - void setCurrentServer(const QString &serverName); - - void attachNetwork(Network *network); - void attachIrcChannel(const QString &channelName); - -private: - NetworkId _networkId; - - QPointer _network; -}; - /***************************************** * User Category Items (like @vh etc.) *****************************************/ -- 2.20.1