X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=7d644422d2dd7879c605a8282d534c9010e3ef3f;hp=c75dd576041d8ef1c9ba0a201f8d7b852f505a99;hb=1658ab9a8f4287fde15f3ceb13503282a6948990;hpb=c6fc5ae878a4f92b658c3da2861bcc7da9c2594f diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index c75dd576..7d644422 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -244,7 +244,6 @@ QVariant BufferItem::data(int column, int role) const { } bool BufferItem::setData(int column, const QVariant &value, int role) { - qDebug() << "BufferItem::setData(int column, const QVariant &value, int role):" << this << column << value << role; switch(role) { case NetworkModel::BufferActivityRole: setActivityLevel((BufferInfo::ActivityLevel)value.toInt()); @@ -304,7 +303,7 @@ QueryBufferItem::QueryBufferItem(const BufferInfo &bufferInfo, NetworkItem *pare : BufferItem(bufferInfo, parent), _ircUser(0) { - setFlags(flags() | Qt::ItemIsDropEnabled); + setFlags(flags() | Qt::ItemIsDropEnabled | Qt::ItemIsEditable); const Network *net = Client::network(bufferInfo.networkId()); if(!net) @@ -318,7 +317,7 @@ QueryBufferItem::QueryBufferItem(const BufferInfo &bufferInfo, NetworkItem *pare QVariant QueryBufferItem::data(int column, int role) const { switch(role) { case NetworkModel::IrcUserRole: - return _ircUser; + return QVariant::fromValue(_ircUser); case NetworkModel::UserAwayRole: return (bool)_ircUser ? _ircUser->isAway() : false; default: @@ -326,6 +325,27 @@ QVariant QueryBufferItem::data(int column, int role) const { } } +bool QueryBufferItem::setData(int column, const QVariant &value, int role) { + if(column != 0) + return BufferItem::setData(column, value, role); + + switch(role) { + case Qt::EditRole: + { + QString newName = value.toString(); + if(!newName.isEmpty()) { + Client::renameBuffer(bufferId(), newName); + return true; + } else { + return false; + } + } + break; + default: + return BufferItem::setData(column, value, role); + } +} + QString QueryBufferItem::toolTip(int column) const { // pretty much code duplication of IrcUserItem::toolTip() but inheritance won't solve this... Q_UNUSED(column); @@ -392,7 +412,7 @@ ChannelBufferItem::ChannelBufferItem(const BufferInfo &bufferInfo, AbstractTreeI QVariant ChannelBufferItem::data(int column, int role) const { switch(role) { case NetworkModel::IrcChannelRole: - return _ircChannel; + return QVariant::fromValue(_ircChannel); default: return BufferItem::data(column, role); } @@ -689,8 +709,10 @@ QVariant IrcUserItem::data(int column, int role) const { return parent()->data(column, role); case NetworkModel::BufferInfoRole: return parent()->data(column, role); + case NetworkModel::IrcChannelRole: + return parent()->data(column, role); case NetworkModel::IrcUserRole: - return _ircUser.data(); + return QVariant::fromValue(_ircUser.data()); case NetworkModel::UserAwayRole: return (bool)_ircUser ? _ircUser->isAway() : false; default: