File indexing completed on 2024-05-12 05:37:09
0001 /* 0002 SPDX-FileCopyrightText: 2019 Konrad Materka <materka@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QSortFilterProxyModel> 0010 0011 class SortedSystemTrayModel : public QSortFilterProxyModel 0012 { 0013 Q_OBJECT 0014 public: 0015 enum class SortingType { 0016 ConfigurationPage, 0017 SystemTray, 0018 }; 0019 0020 explicit SortedSystemTrayModel(SortingType sorting, QObject *parent = nullptr); 0021 0022 protected: 0023 bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override; 0024 0025 private: 0026 bool lessThanConfigurationPage(const QModelIndex &left, const QModelIndex &right) const; 0027 bool lessThanSystemTray(const QModelIndex &left, const QModelIndex &right) const; 0028 0029 int compareCategoriesAlphabetically(const QModelIndex &left, const QModelIndex &right) const; 0030 int compareCategoriesOrderly(const QModelIndex &left, const QModelIndex &right) const; 0031 0032 SortingType m_sorting; 0033 };