X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fbufferwidget.cpp;h=3f6ba6d25a42071e7c5c4fdc4162a3b67f423ace;hp=d6324201c548288d1effafc0197f249b1f39c095;hb=d1d1e6ef1d2073d629bf54fd8e0d31f647f9cb88;hpb=4a5065255e652dd0c301bac0db41b7afb777ef49 diff --git a/src/qtui/bufferwidget.cpp b/src/qtui/bufferwidget.cpp index d6324201..3f6ba6d2 100644 --- a/src/qtui/bufferwidget.cpp +++ b/src/qtui/bufferwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 by the Quassel Project * + * Copyright (C) 2005-2014 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -40,7 +40,8 @@ BufferWidget::BufferWidget(QWidget *parent) : AbstractBufferContainer(parent), _chatViewSearchController(new ChatViewSearchController(this)), - _autoMarkerLine(true) + _autoMarkerLine(true), + _autoMarkerLineOnLostFocus(true) { ui.setupUi(this); layout()->setContentsMargins(0, 0, 0, 0); @@ -99,6 +100,7 @@ BufferWidget::BufferWidget(QWidget *parent) ChatViewSettings s; s.initAndNotify("AutoMarkerLine", this, SLOT(setAutoMarkerLine(QVariant)), true); + s.initAndNotify("AutoMarkerLineOnLostFocus", this, SLOT(setAutoMarkerLineOnLostFocus(QVariant)), true); } @@ -114,6 +116,11 @@ void BufferWidget::setAutoMarkerLine(const QVariant &v) _autoMarkerLine = v.toBool(); } +void BufferWidget::setAutoMarkerLineOnLostFocus(const QVariant &v) +{ + _autoMarkerLineOnLostFocus = v.toBool(); +} + AbstractChatView *BufferWidget::createChatView(BufferId id) { @@ -270,14 +277,14 @@ void BufferWidget::setMarkerLine(ChatView *view, bool allowGoingBack) if (lastLine) { QModelIndex idx = lastLine->index(); MsgId msgId = idx.data(MessageModel::MsgIdRole).value(); + BufferId bufId = view->scene()->singleBufferId(); if (!allowGoingBack) { - BufferId bufId = view->scene()->singleBufferId(); MsgId oldMsgId = Client::markerLine(bufId); if (oldMsgId.isValid() && msgId <= oldMsgId) return; } - view->setMarkerLine(msgId); + Client::setMarkerLine(bufId, msgId); } }