1 /*******************************************************************************
3 This file is part of mDictionary.
5 mDictionary 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.
10 mDictionary 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.
15 You should have received a copy of the GNU General Public License
16 along with mDictionary. If not, see <http://www.gnu.org/licenses/>.
18 Copyright 2010 Comarch S.A.
20 *******************************************************************************/
22 //Created by Mateusz Półrola
24 #ifndef DICTSPROXYMODEL_H
25 #define DICTSPROXYMODEL_H
27 #include <QSortFilterProxyModel>
30 class DictsProxyModel : public QSortFilterProxyModel
34 DictsProxyModel(QObject *parent = 0): QSortFilterProxyModel(parent){
38 QString from() { return _from;}
39 QString to() {return _to;}
41 void setFrom(QString from) { _from = from; invalidateFilter(); }
42 void setTo(QString to) {_to = to; invalidateFilter();}
45 bool filterAcceptsRow(int source_row, const QModelIndex&) const {
46 QString sourceFrom = sourceModel()->data(
47 sourceModel()->index(source_row, 0)).toString();
48 QString sourceTo = sourceModel()->data(
49 sourceModel()->index(source_row, 1)).toString();
51 return ((_from.isEmpty() || sourceFrom == _from) &&
52 (_to.isEmpty() || sourceTo == _to));
55 bool lessThan(const QModelIndex &left, const QModelIndex &right) const {
56 if(sortColumn() == 3) {
57 QString l = left.model()->data(left).toString();
60 QString r = right.model()->data(right).toString();
63 float lNumber = l.toFloat();
64 float rNumber = r.toFloat();
66 return (lNumber < rNumber);
69 QSortFilterProxyModel::lessThan(left, right);
78 #endif // DICTSPROXYMODEL_H