From: Alexander von Renteln Date: Fri, 14 Mar 2008 00:28:29 +0000 (+0000) Subject: doubleclick on nick now selects the buffer if buffer is available X-Git-Tag: 0.2.0-alpha3~4 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=819b4ac594c6f7d2dba211322abd907a3991771b doubleclick on nick now selects the buffer if buffer is available --- diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 7aa2082f..75dd515a 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -586,7 +586,7 @@ QVariant IrcUserItem::data(int column, int role) const { QString IrcUserItem::toolTip(int column) const { Q_UNUSED(column); QStringList toolTip(QString("%1").arg(nickName())); - if(_ircUser->userModes() != "") toolTip[0].append(QString("(%1)").arg(_ircUser->userModes())); + if(_ircUser->userModes() != "") toolTip[0].append(QString(" (%1)").arg(_ircUser->userModes())); if(_ircUser->isAway()) toolTip[0].append(" is away"); if(!_ircUser->awayMessage().isEmpty()) toolTip[0].append(QString(" (%1)").arg(_ircUser->awayMessage())); if(!_ircUser->realName().isEmpty()) toolTip.append(_ircUser->realName()); diff --git a/src/uisupport/nickview.cpp b/src/uisupport/nickview.cpp index 78cb709b..46913186 100644 --- a/src/uisupport/nickview.cpp +++ b/src/uisupport/nickview.cpp @@ -25,6 +25,7 @@ #include "nickview.h" #include "nickviewfilter.h" #include "networkmodel.h" +#include "buffermodel.h" #include "types.h" #include "client.h" @@ -149,8 +150,25 @@ void NickView::showContextMenu(const QPoint & pos ) { void NickView::startQuery(const QModelIndex & index) { QString nick = nickFromModelIndex(index); - BufferInfo bufferInfo = bufferInfoFromModelIndex(index); - executeCommand(bufferInfo, QString("/QUERY %1").arg(nick)); + bool activated = false; + + if(QSortFilterProxyModel *nickviewFilter = qobject_cast(model())) { + // rootIndex() is the channel, parent() is the corresponding network + QModelIndex networkIndex = rootIndex().parent(); + QModelIndex source_networkIndex = nickviewFilter->mapToSource(networkIndex); + for(int i = 0; i < Client::networkModel()->rowCount(source_networkIndex); i++) { + QModelIndex childIndex = source_networkIndex.child( i, 0); + if(nick.toLower() == childIndex.data().toString().toLower()) { + QModelIndex queryIndex = Client::bufferModel()->mapFromSource(childIndex); + Client::bufferModel()->setCurrentIndex(queryIndex); + activated = true; + } + } + } + if(!activated) { + BufferInfo bufferInfo = bufferInfoFromModelIndex(index); + executeCommand(bufferInfo, QString("/QUERY %1").arg(nick)); + } } void NickView::executeCommand(const BufferInfo & bufferInfo, const QString & command) {