projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixing BR #234. Queries where the chatpartner is away are no longer shown as disabled...
[quassel.git]
/
src
/
client
/
networkmodel.cpp
diff --git
a/src/client/networkmodel.cpp
b/src/client/networkmodel.cpp
index
238dadb
..
d6c18d7
100644
(file)
--- a/
src/client/networkmodel.cpp
+++ b/
src/client/networkmodel.cpp
@@
-123,7
+123,7
@@
void NetworkItem::attachIrcChannel(IrcChannel *ircChannel) {
if(channelItem->bufferName().toLower() == ircChannel->name().toLower()) {
channelItem->attachIrcChannel(ircChannel);
if(channelItem->bufferName().toLower() == ircChannel->name().toLower()) {
channelItem->attachIrcChannel(ircChannel);
-
break
;
+
return
;
}
}
}
}
}
}
@@
-293,14
+293,15
@@
QueryBufferItem::QueryBufferItem(const BufferInfo &bufferInfo, NetworkItem *pare
IrcUser *ircUser = net->ircUser(bufferInfo.bufferName());
if(ircUser)
attachIrcUser(ircUser);
IrcUser *ircUser = net->ircUser(bufferInfo.bufferName());
if(ircUser)
attachIrcUser(ircUser);
-
}
}
-bool QueryBufferItem::isActive() const {
- if(_ircUser)
- return !_ircUser->isAway();
- else
- return false;
+QVariant QueryBufferItem::data(int column, int role) const {
+ switch(role) {
+ case NetworkModel::UserAwayRole:
+ return (bool)_ircUser ? _ircUser->isAway() : false;
+ default:
+ return BufferItem::data(column, role);
+ }
}
QString QueryBufferItem::toolTip(int column) const {
}
QString QueryBufferItem::toolTip(int column) const {
@@
-432,22
+433,8
@@
void ChannelBufferItem::ircChannelDestroyed() {
removeAllChilds();
}
removeAllChilds();
}
-void ChannelBufferItem::ircUserDestroyed() {
- // PRIVATE
- IrcUser *ircUser = static_cast<IrcUser *>(sender());
- removeUserFromCategory(ircUser);
- emit dataChanged(2);
-}
-
void ChannelBufferItem::join(const QList<IrcUser *> &ircUsers) {
addUsersToCategory(ircUsers);
void ChannelBufferItem::join(const QList<IrcUser *> &ircUsers) {
addUsersToCategory(ircUsers);
-
- foreach(IrcUser *ircUser, ircUsers) {
- if(!ircUser)
- continue;
- connect(ircUser, SIGNAL(destroyed()), this, SLOT(ircUserDestroyed()));
- }
-
emit dataChanged(2);
}
emit dataChanged(2);
}
@@
-540,13
+527,12
@@
void ChannelBufferItem::userModeChanged(IrcUser *ircUser) {
}
// find the item that needs reparenting
}
// find the item that needs reparenting
- UserCategoryItem *oldCategoryItem = 0;
IrcUserItem *ircUserItem = 0;
for(int i = 0; i < childCount(); i++) {
IrcUserItem *ircUserItem = 0;
for(int i = 0; i < childCount(); i++) {
- UserCategoryItem *catItem = qobject_cast<UserCategoryItem *>(child(i));
- IrcUserItem *userItem = catItem->findIrcUser(ircUser);
+ UserCategoryItem *oldCategoryItem = qobject_cast<UserCategoryItem *>(child(i));
+ Q_ASSERT(oldCategoryItem);
+ IrcUserItem *userItem = oldCategoryItem->findIrcUser(ircUser);
if(userItem) {
if(userItem) {
- oldCategoryItem = catItem;
ircUserItem = userItem;
break;
}
ircUserItem = userItem;
break;
}
@@
-556,11
+542,7
@@
void ChannelBufferItem::userModeChanged(IrcUser *ircUser) {
qWarning() << "ChannelBufferItem::userModeChanged(IrcUser *): unable to determine old category of" << ircUser;
return;
}
qWarning() << "ChannelBufferItem::userModeChanged(IrcUser *): unable to determine old category of" << ircUser;
return;
}
-
- Q_ASSERT(oldCategoryItem);
- if(ircUserItem->reParent(categoryItem) && oldCategoryItem->childCount() == 0) {
- removeChild(oldCategoryItem);
- }
+ ircUserItem->reParent(categoryItem);
}
/*****************************************
}
/*****************************************
@@
-574,6
+556,7
@@
UserCategoryItem::UserCategoryItem(int category, AbstractTreeItem *parent)
: PropertyMapItem(QStringList() << "categoryName", parent),
_category(category)
{
: PropertyMapItem(QStringList() << "categoryName", parent),
_category(category)
{
+ setTreeItemFlags(AbstractTreeItem::DeleteOnLastChildRemoved);
setObjectName(parent->data(0, Qt::DisplayRole).toString() + "/" + QString::number(category));
}
setObjectName(parent->data(0, Qt::DisplayRole).toString() + "/" + QString::number(category));
}
@@
-657,26
+640,11
@@
IrcUserItem::IrcUserItem(IrcUser *ircUser, AbstractTreeItem *parent)
_ircUser(ircUser)
{
setObjectName(ircUser->nick());
_ircUser(ircUser)
{
setObjectName(ircUser->nick());
- // we don't need to handle the ircUser's destroyed signal since it's automatically removed
- // by the IrcChannel::ircUserParted();
+ connect(ircUser, SIGNAL(destroyed()), this, SLOT(ircUserDestroyed()));
connect(ircUser, SIGNAL(nickSet(QString)), this, SIGNAL(dataChanged()));
connect(ircUser, SIGNAL(awaySet(bool)), this, SIGNAL(dataChanged()));
}
connect(ircUser, SIGNAL(nickSet(QString)), this, SIGNAL(dataChanged()));
connect(ircUser, SIGNAL(awaySet(bool)), this, SIGNAL(dataChanged()));
}
-QString IrcUserItem::nickName() const {
- if(_ircUser)
- return _ircUser->nick();
- else
- return QString();
-}
-
-bool IrcUserItem::isActive() const {
- if(_ircUser)
- return !_ircUser->isAway();
- else
- return false;
-}
-
QVariant IrcUserItem::data(int column, int role) const {
switch(role) {
case NetworkModel::ItemActiveRole:
QVariant IrcUserItem::data(int column, int role) const {
switch(role) {
case NetworkModel::ItemActiveRole:
@@
-725,6
+693,12
@@
QString IrcUserItem::toolTip(int column) const {
return QString("<p> %1 </p>").arg(toolTip.join("<br />"));
}
return QString("<p> %1 </p>").arg(toolTip.join("<br />"));
}
+// void IrcUserItem::ircUserDestroyed() {
+// parent()->removeChild(this);
+// if(parent()->childCount() == 0)
+// parent()->parent()->removeChild(parent());
+// }
+
/*****************************************
* NetworkModel
*****************************************/
/*****************************************
* NetworkModel
*****************************************/