PageRenderTime 21ms CodeModel.GetById 10ms app.highlight 10ms RepoModel.GetById 0ms app.codeStats 0ms

/guitone-1.0rc5/src/model/GetFileProxyModel.cpp

#
C++ | 50 lines | 26 code | 7 blank | 17 comment | 14 complexity | bd2d245aecbddc6e3d8819c6ed258016 MD5 | raw file
Possible License(s): GPL-3.0
 1/***************************************************************************
 2 *   Copyright (C) 2006 by Ingo Maindorfer								   *
 3 *   ingo@liquidcooling.de												   *
 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 3 of the License, or     *
 8 *   (at your option) any later version.                                   *
 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, see <http://www.gnu.org/licenses/>. *
17 ***************************************************************************/
18
19#include "GetFileProxyModel.h"
20#include "GetFile.h"
21
22GetFileProxyModel::GetFileProxyModel(QObject * parent)
23    : QSortFilterProxyModel(parent), version(Both)
24{}
25
26GetFileProxyModel::~GetFileProxyModel() {}
27
28bool GetFileProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex & sourceParent) const
29{
30    QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
31    ContentLine * line = static_cast<ContentLine *>(index.internalPointer());
32
33    if ((line->state == DiffLine::Added || line->state == DiffLine::AddedMissingNewline) && version == Left)
34        return false;
35    if ((line->state == DiffLine::Removed || line->state == DiffLine::RemovedMissingNewline) && version == Right)
36        return false;
37    return true;
38}
39
40void GetFileProxyModel::setFileVersion(FileVersion v)
41{
42    if (version == v) return;
43    version = v;
44    clear();
45}
46
47GetFileProxyModel::FileVersion GetFileProxyModel::fileVersion() const
48{
49    return version;
50}