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
*****************************************/