1.1.12
by Scott Kitterman
Import upstream version 0.4.0~git090206 |
1 |
/***************************************************************************
|
1.1.54
by Scott Kitterman
Import upstream version 0.10~beta1 |
2 |
* Copyright (C) 2005-2014 by the Quassel Project *
|
1.1.12
by Scott Kitterman
Import upstream version 0.4.0~git090206 |
3 |
* devel@quassel-irc.org *
|
4 |
* *
|
|
5 |
* This program is free software; you can redistribute it and/or modify *
|
|
6 |
* it under the terms of the GNU General Public License as published by *
|
|
7 |
* the Free Software Foundation; either version 2 of the License, or *
|
|
8 |
* (at your option) version 3. *
|
|
9 |
* *
|
|
10 |
* This program is distributed in the hope that it will be useful, *
|
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
13 |
* GNU General Public License for more details. *
|
|
14 |
* *
|
|
15 |
* You should have received a copy of the GNU General Public License *
|
|
16 |
* along with this program; if not, write to the *
|
|
17 |
* Free Software Foundation, Inc., *
|
|
1.1.49
by Scott Kitterman
Import upstream version 0.9~beta1 |
18 |
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
1.1.12
by Scott Kitterman
Import upstream version 0.4.0~git090206 |
19 |
***************************************************************************/
|
20 |
||
21 |
#include "awaylogfilter.h" |
|
22 |
||
23 |
AwayLogFilter::AwayLogFilter(MessageModel *model, QObject *parent) |
|
1.1.49
by Scott Kitterman
Import upstream version 0.9~beta1 |
24 |
: ChatMonitorFilter(model, parent) |
25 |
{
|
|
26 |
}
|
|
27 |
||
28 |
||
29 |
bool AwayLogFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const |
|
30 |
{
|
|
31 |
Q_UNUSED(sourceParent) |
|
32 |
||
33 |
QModelIndex source_index = sourceModel()->index(sourceRow, 0); |
|
34 |
||
35 |
Message::Flags flags = (Message::Flags)sourceModel()->data(source_index, MessageModel::FlagsRole).toInt(); |
|
36 |
if (!(flags & Message::Backlog && flags & Message::Highlight)) |
|
37 |
return false; |
|
38 |
||
39 |
BufferId bufferId = sourceModel()->data(source_index, MessageModel::BufferIdRole).value<BufferId>(); |
|
40 |
if (!bufferId.isValid()) { |
|
41 |
return false; |
|
42 |
}
|
|
43 |
||
44 |
if (Client::networkModel()->lastSeenMsgId(bufferId) >= sourceModel()->data(source_index, MessageModel::MsgIdRole).value<MsgId>()) |
|
45 |
return false; |
|
46 |
||
47 |
return true; |
|
48 |
}
|
|
49 |
||
50 |
||
51 |
QVariant AwayLogFilter::data(const QModelIndex &index, int role) const |
|
52 |
{
|
|
53 |
if (role != MessageModel::FlagsRole) |
|
54 |
return ChatMonitorFilter::data(index, role); |
|
55 |
||
56 |
QModelIndex source_index = mapToSource(index); |
|
57 |
Message::Flags flags = (Message::Flags)sourceModel()->data(source_index, MessageModel::FlagsRole).toInt(); |
|
58 |
flags &= ~Message::Highlight; |
|
59 |
return (int)flags; |
|
1.1.12
by Scott Kitterman
Import upstream version 0.4.0~git090206 |
60 |
}
|