File indexing completed on 2024-04-28 16:54:37
0001 /* 0002 SPDX-FileCopyrightText: 2019 Kai Uwe Broulik <kde@privat.broulik.de> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <QSortFilterProxyModel> 0010 0011 #include "notifications.h" 0012 0013 namespace NotificationManager 0014 { 0015 class NotificationSortProxyModel : public QSortFilterProxyModel 0016 { 0017 Q_OBJECT 0018 0019 public: 0020 explicit NotificationSortProxyModel(QObject *parent = nullptr); 0021 ~NotificationSortProxyModel() override; 0022 0023 Notifications::SortMode sortMode() const; 0024 void setSortMode(Notifications::SortMode); 0025 0026 Qt::SortOrder sortOrder() const; 0027 void setSortOrder(Qt::SortOrder sortOrder); 0028 0029 Q_SIGNALS: 0030 void sortModeChanged(); 0031 void sortOrderChanged(); 0032 0033 protected: 0034 bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override; 0035 0036 private: 0037 Notifications::SortMode m_sortMode = Notifications::SortByDate; 0038 Qt::SortOrder m_sortOrder = Qt::DescendingOrder; 0039 }; 0040 0041 } // namespace NotificationManager