File indexing completed on 2024-05-05 05:38:34
0001 /* 0002 SPDX-FileCopyrightText: 2016 Eike Hein <hein@kde.org> 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 "abstracttasksproxymodeliface.h" 0010 0011 #include <KDescendantsProxyModel> 0012 0013 #include "taskmanager_export.h" 0014 0015 namespace TaskManager 0016 { 0017 /** 0018 * @short A proxy tasks model for flattening a tree-structured tasks model 0019 * into a list-structured tasks model. 0020 * 0021 * This proxy model is a subclass of KDescendantsProxyModel implementing 0022 * AbstractTasksModelIface. 0023 * 0024 * @author Eike Hein <hein@kde.org> 0025 **/ 0026 0027 class TASKMANAGER_EXPORT FlattenTaskGroupsProxyModel : public KDescendantsProxyModel, public AbstractTasksProxyModelIface 0028 { 0029 Q_OBJECT 0030 0031 public: 0032 explicit FlattenTaskGroupsProxyModel(QObject *parent = nullptr); 0033 ~FlattenTaskGroupsProxyModel() override; 0034 0035 void setSourceModel(QAbstractItemModel *sourceModel) override; 0036 0037 protected: 0038 QModelIndex mapIfaceToSource(const QModelIndex &index) const override; 0039 0040 private: 0041 class Private; 0042 std::unique_ptr<Private> d; 0043 }; 0044 0045 }