1 /* 2 Drawpile - a collaborative drawing program. 3 4 Copyright (C) 2019 Calle Laakkonen 5 6 Drawpile is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 Drawpile is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with Drawpile. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef SESSIONFILTERPROXYMODEL_H 21 #define SESSIONFILTERPROXYMODEL_H 22 23 #include <QSortFilterProxyModel> 24 25 /** 26 * A custom SortFilter proxy model that has special support for 27 * - SessionListingModel 28 * - LoginSessionModel 29 * 30 * Otherwise works like normal QSortFilterProxyModel 31 */ 32 class SessionFilterProxyModel : public QSortFilterProxyModel 33 { 34 Q_OBJECT 35 public: 36 SessionFilterProxyModel(QObject *parent=nullptr); 37 showNsfw()38 bool showNsfw() const { return m_showNsfw; } showPassworded()39 bool showPassworded() const { return m_showPassworded; } 40 41 public slots: 42 void setShowNsfw(bool show); 43 void setShowPassworded(bool show); 44 void setShowClosed(bool show); 45 46 protected: 47 bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; 48 49 private: 50 bool m_showPassworded; 51 bool m_showNsfw; 52 bool m_showClosed; 53 }; 54 55 #endif 56 57