X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatmonitorview.cpp;h=6d5d667935e345098bc9ea60c9af421d519d1be2;hp=6b9fe601382744a373d4f92330ff01349b16f88e;hb=3e85aa859e7533ec910f8b2efe4a8abd801d3a47;hpb=9d52e49424afb60c2f28073051c1dbf25f47adec;ds=sidebyside diff --git a/src/qtui/chatmonitorview.cpp b/src/qtui/chatmonitorview.cpp index 6b9fe601..6d5d6679 100644 --- a/src/qtui/chatmonitorview.cpp +++ b/src/qtui/chatmonitorview.cpp @@ -26,7 +26,12 @@ #include "chatmonitorfilter.h" #include "chatlinemodel.h" +#include "chatitem.h" #include "chatscene.h" +#include "client.h" +#include "networkmodel.h" +#include "buffermodel.h" +#include "messagemodel.h" #include "qtuisettings.h" ChatMonitorView::ChatMonitorView(ChatMonitorFilter *filter, QWidget *parent) @@ -55,6 +60,23 @@ void ChatMonitorView::contextMenuEvent(QContextMenuEvent *event) { contextMenu.exec(QCursor::pos()); } +void ChatMonitorView::mouseDoubleClickEvent(QMouseEvent *event) { + if(scene()->sectionByScenePos(event->pos()) != ChatLineModel::SenderColumn) + return; + + //ChatItem *chatItem = static_cast(itemAt(event->pos())); + ChatItem *chatItem = dynamic_cast(itemAt(event->pos())); + BufferId bufferId = chatItem->data(MessageModel::BufferIdRole).value(); + if(!bufferId.isValid()) + return; + + QModelIndex bufferIdx = Client::networkModel()->bufferIndex(bufferId); + if(!bufferIdx.isValid()) + return; + + Client::bufferModel()->setCurrentIndex(Client::bufferModel()->mapFromSource(bufferIdx)); +} + void ChatMonitorView::showFieldsChanged(bool checked) { QAction *showAction = qobject_cast(sender()); if(!showAction)