File indexing completed on 2024-05-05 05:51:27

0001 /* This file is part of the KDE project
0002    SPDX-FileCopyrightText: 2010 Thomas Fjellstrom <thomas@fjellstrom.ca>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QSortFilterProxyModel>
0010 
0011 namespace KTextEditor
0012 {
0013 class Document;
0014 }
0015 
0016 enum { CustomSorting = 1000 };
0017 
0018 class KateFileTreeProxyModel : public QSortFilterProxyModel
0019 {
0020     Q_OBJECT
0021 
0022 public:
0023     explicit KateFileTreeProxyModel(QObject *p = nullptr);
0024     QModelIndex docIndex(const KTextEditor::Document *) const;
0025     QModelIndex widgetIndex(QWidget *) const;
0026     bool isDir(const QModelIndex &i) const;
0027     bool isWidgetDir(const QModelIndex &i) const;
0028     void setSourceModel(QAbstractItemModel *model) override;
0029     KTextEditor::Document *docFromIndex(const QModelIndex &index);
0030     QList<KTextEditor::Document *> docTreeFromIndex(const QModelIndex &index);
0031 
0032 protected:
0033     bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
0034     bool lessThan(const QModelIndex &left, const QModelIndex &right) const override;
0035 };