X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=94d90b8d2c7e825bb7edaf9668f24d8776c93b1a;hb=236e70030428e5b85309d6ddb97b772fa3efe61a;hp=05340a36becd126398b10aea92ef9d0d0a217df2;hpb=bd1a18355495899b5ce3003599a67e1ea7ca01cc;p=quassel.git diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 05340a36..94d90b8d 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -29,8 +29,12 @@ #include "ircchannel.h" #include "ircuser.h" +#include "buffersettings.h" + #include "util.h" // get rid of this (needed for isChannelName) +// #define PHONDEV + /***************************************** * Fancy Buffer Items *****************************************/ @@ -282,6 +286,49 @@ void BufferItem::userModeChanged(IrcUser *ircUser) { addUserToCategory(ircUser); } +QString BufferItem::toolTip(int column) const { + Q_UNUSED(column); + QStringList toolTip; + + switch(bufferType()) { + case BufferInfo::StatusBuffer: { + QString netName = Client::network(bufferInfo().networkId())->networkName(); + toolTip.append(QString("Status buffer from %1").arg(netName)); + break; + } + case BufferInfo::ChannelBuffer: + toolTip.append(QString("

Channel %1

").arg(bufferName())); + if(isActive()) { + //TODO: add channel modes + toolTip.append(QString("Users: %1").arg(nickCount())); + + BufferSettings s; + bool showTopic = s.value("DisplayTopicInTooltip", QVariant(false)).toBool(); + if(showTopic) { + QString _topic = topic(); + if(_topic != "") { + _topic.replace(QString("<"), QString("<")); + _topic.replace(QString(">"), QString(">")); + toolTip.append(QString(" ")); + toolTip.append(QString("Topic: %1").arg(_topic)); + } + } + } else { + toolTip.append(QString("Not active
Double-click to join")); + } + break; + case BufferInfo::QueryBuffer: + toolTip.append(QString("Query with %1").arg(bufferName())); + if(topic() != "") toolTip.append(QString("Away Message: %1").arg(topic())); + break; + default: //this should not happen + toolTip.append(QString("%1 - %2").arg(bufferInfo().bufferId().toInt()).arg(bufferName())); + break; + } + + return QString("

%1

").arg(toolTip.join("
")); +} + /* void BufferItem::setLastMsgInsert(QDateTime msgDate) { if(msgDate.isValid() && msgDate > _lastMsgInsert) @@ -405,6 +452,18 @@ void NetworkItem::setCurrentServer(const QString &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.) *****************************************/ @@ -484,6 +543,8 @@ IrcUserItem::IrcUserItem(IrcUser *ircUser, AbstractTreeItem *parent) connect(ircUser, SIGNAL(nickSet(QString)), this, SLOT(setNick(QString))); + connect(ircUser, SIGNAL(awaySet(bool)), + this, SLOT(setAway(bool))); } QString IrcUserItem::nickName() const { @@ -567,6 +628,11 @@ void IrcUserItem::setNick(QString newNick) { emit dataChanged(0); } +void IrcUserItem::setAway(bool away) { + Q_UNUSED(away); + emit dataChanged(0); +} + /***************************************** * NetworkModel *****************************************/