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 };