Merge "persistent color scheme selection"
[trojita.git] / src / Gui / FromAddressProxyModel.cpp
blobf7d5ec0128b109d5254deeb7db665d116493bb9a
1 /* Copyright (C) 2006 - 2014 Jan Kundrát <jkt@flaska.net>
3 This file is part of the Trojita Qt IMAP e-mail client,
4 http://trojita.flaska.net/
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License as
8 published by the Free Software Foundation; either version 2 of
9 the License or (at your option) version 3 or any later version
10 accepted by the membership of KDE e.V. (or its successor approved
11 by the membership of KDE e.V.), which shall act as a proxy
12 defined in Section 14 of version 3 of the license.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #include "FromAddressProxyModel.h"
24 #include "Composer/SenderIdentitiesModel.h"
26 namespace Gui
29 FromAddressProxyModel::FromAddressProxyModel(QObject *parent) :
30 QSortFilterProxyModel(parent)
32 setDynamicSortFilter(true);
35 void FromAddressProxyModel::setSourceModel(QAbstractItemModel *sourceModel)
37 Q_ASSERT(!sourceModel || qobject_cast<Composer::SenderIdentitiesModel*>(sourceModel));
38 QSortFilterProxyModel::setSourceModel(sourceModel);
41 bool FromAddressProxyModel::filterAcceptsColumn(int source_column, const QModelIndex &source_parent) const
43 Q_UNUSED(source_parent);
44 return source_column == 0;
47 QVariant FromAddressProxyModel::data(const QModelIndex &index, int role) const
49 if (!index.isValid())
50 return QVariant();
51 if (role != Qt::DisplayRole && role != Qt::EditRole)
52 return QSortFilterProxyModel::data(index, role);
53 QModelIndex sourceIndex = mapToSource(index);
54 Q_ASSERT(sourceIndex.isValid());
55 QModelIndex nameIndex = sourceIndex.sibling(sourceIndex.row(), Composer::SenderIdentitiesModel::COLUMN_NAME);
56 QModelIndex emailIndex = sourceIndex.sibling(sourceIndex.row(), Composer::SenderIdentitiesModel::COLUMN_EMAIL);
57 Q_ASSERT(nameIndex.isValid());
58 Q_ASSERT(emailIndex.isValid());
59 return QStringLiteral("%1 <%2>").arg(nameIndex.data().toString(), emailIndex.data().toString());